]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: p54: Use IRQF_NO_AUTOEN flag in request_irq()
authorJinjie Ruan <ruanjinjie@huawei.com>
Tue, 10 Sep 2024 12:43:12 +0000 (20:43 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:50:52 +0000 (19:50 +0100)
[ Upstream commit bcd1371bd85e560ccc9159b7747f94bfe43b77a6 ]

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.

Fixes: cd8d3d321285 ("p54spi: p54spi driver")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20240910124314.698896-2-ruanjinjie@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intersil/p54/p54spi.c

index cdb57819684aef2aa1c31adafaa209d6544ec422..8a9168aac7281fee30e3c27d9c72f570399a034c 100644 (file)
@@ -623,7 +623,7 @@ static int p54spi_probe(struct spi_device *spi)
        gpio_direction_input(p54spi_gpio_irq);
 
        ret = request_irq(gpio_to_irq(p54spi_gpio_irq),
-                         p54spi_interrupt, 0, "p54spi",
+                         p54spi_interrupt, IRQF_NO_AUTOEN, "p54spi",
                          priv->spi);
        if (ret < 0) {
                dev_err(&priv->spi->dev, "request_irq() failed");
@@ -632,8 +632,6 @@ static int p54spi_probe(struct spi_device *spi)
 
        irq_set_irq_type(gpio_to_irq(p54spi_gpio_irq), IRQ_TYPE_EDGE_RISING);
 
-       disable_irq(gpio_to_irq(p54spi_gpio_irq));
-
        INIT_WORK(&priv->work, p54spi_work);
        init_completion(&priv->fw_comp);
        INIT_LIST_HEAD(&priv->tx_pending);