summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2025-04-11 21:14:10 +0800
committerJassi Brar <jassisinghbrar@gmail.com>2025-05-26 16:23:39 -0500
commitdddbd233e67e792bb0a3f9694a4707e6be29b2c6 (patch)
tree5a10fdb9b716fea8963016be5d3d42f08944b80a
parent8da4988b6e645f3eaa590ea16f433583364fd09c (diff)
mailbox: Not protect module_put with spin_lock_irqsave
&chan->lock is not supposed to protect 'chan->mbox'. And in __mbox_bind_client, try_module_get is also not protected by &chan->lock. So move module_put out of the lock protected region. Signed-off-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
-rw-r--r--drivers/mailbox/mailbox.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c
index e5e2a66355a7..3ecf92a580fe 100644
--- a/drivers/mailbox/mailbox.c
+++ b/drivers/mailbox/mailbox.c
@@ -486,8 +486,8 @@ void mbox_free_channel(struct mbox_chan *chan)
if (chan->txdone_method == TXDONE_BY_ACK)
chan->txdone_method = TXDONE_BY_POLL;
- module_put(chan->mbox->dev->driver->owner);
spin_unlock_irqrestore(&chan->lock, flags);
+ module_put(chan->mbox->dev->driver->owner);
}
EXPORT_SYMBOL_GPL(mbox_free_channel);