We should start the loop consistently with the "wl_lock" lock held. Signed-off-by: Dan Carpenter <error27@gmail.com> Acked-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
@@ -466,6 +466,7 @@ static void wl1271_irq_work(struct work_struct *work)
intr = le32_to_cpu(wl->fw_status->intr);
if (!intr) {
wl1271_debug(DEBUG_IRQ, "Zero interrupt received.");
+ spin_lock_irqsave(&wl->wl_lock, flags);
continue;
}