mailbox: Not protect module_put with spin_lock_irqsave
[ Upstream commit dddbd233e67e792bb0a3f9694a4707e6be29b2c6 ] &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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7d03b140af
commit
35cda8619d
@@ -500,8 +500,8 @@ void mbox_free_channel(struct mbox_chan *chan)
|
|||||||
if (chan->txdone_method == TXDONE_BY_ACK)
|
if (chan->txdone_method == TXDONE_BY_ACK)
|
||||||
chan->txdone_method = TXDONE_BY_POLL;
|
chan->txdone_method = TXDONE_BY_POLL;
|
||||||
|
|
||||||
module_put(chan->mbox->dev->driver->owner);
|
|
||||||
spin_unlock_irqrestore(&chan->lock, flags);
|
spin_unlock_irqrestore(&chan->lock, flags);
|
||||||
|
module_put(chan->mbox->dev->driver->owner);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mbox_free_channel);
|
EXPORT_SYMBOL_GPL(mbox_free_channel);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user