disable_irq() after request_irq() still has a time gap in which
interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will
disable IRQ auto-enable when request IRQ.

Signed-off-by: Jinjie Ruan <ruanjin...@huawei.com>
---
 drivers/net/wireless/marvell/mwifiex/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/main.c 
b/drivers/net/wireless/marvell/mwifiex/main.c
index d99127dc466e..6c60a4c21a31 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -1633,7 +1633,8 @@ static void mwifiex_probe_of(struct mwifiex_adapter 
*adapter)
        }
 
        ret = devm_request_irq(dev, adapter->irq_wakeup,
-                              mwifiex_irq_wakeup_handler, IRQF_TRIGGER_LOW,
+                              mwifiex_irq_wakeup_handler,
+                              IRQF_TRIGGER_LOW | IRQF_NO_AUTOEN,
                               "wifi_wake", adapter);
        if (ret) {
                dev_err(dev, "Failed to request irq_wakeup %d (%d)\n",
@@ -1641,7 +1642,6 @@ static void mwifiex_probe_of(struct mwifiex_adapter 
*adapter)
                goto err_exit;
        }
 
-       disable_irq(adapter->irq_wakeup);
        if (device_init_wakeup(dev, true)) {
                dev_err(dev, "fail to init wakeup for mwifiex\n");
                goto err_exit;
-- 
2.34.1


Reply via email to