Forwarded: [PATCH 1/1] add lock to wait queue

syzbot posted 1 patch 2 months, 1 week ago
drivers/net/wireless/marvell/libertas/firmware.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Forwarded: [PATCH 1/1] add lock to wait queue
Posted by syzbot 2 months, 1 week ago
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.

***

Subject: [PATCH 1/1] add lock to wait queue
Author: jakovnovak30@gmail.com

#syz test

---
 drivers/net/wireless/marvell/libertas/firmware.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/marvell/libertas/firmware.c b/drivers/net/wireless/marvell/libertas/firmware.c
index f124110944b7..19ec9a20122a 100644
--- a/drivers/net/wireless/marvell/libertas/firmware.c
+++ b/drivers/net/wireless/marvell/libertas/firmware.c
@@ -113,7 +113,10 @@ static void load_next_firmware_from_table(struct lbs_private *priv)
 
 void lbs_wait_for_firmware_load(struct lbs_private *priv)
 {
-	wait_event(priv->fw_waitq, priv->fw_callback == NULL);
+	unsigned long flags;
+	spin_lock_irqsave(&priv->driver_lock, flags);
+	wait_event_lock_irq(priv->fw_waitq, priv->fw_callback == NULL, priv->driver_lock);
+	spin_unlock_irqrestore(&priv->driver_lock, flags);
 }
 
 /**
-- 
2.53.0