]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
soc: ti: smartreflex: Use IRQF_NO_AUTOEN flag in request_irq()
authorJinjie Ruan <ruanjinjie@huawei.com>
Thu, 12 Sep 2024 03:41:47 +0000 (11:41 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:52:57 +0000 (13:52 +0100)
[ Upstream commit 16a0a69244240cfa32c525c021c40f85e090557a ]

If request_irq() fails in sr_late_init(), there is no need to enable
the irq, and if it succeeds, 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: 1279ba5916f6 ("OMAP3+: SR: disable interrupt by default")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20240912034147.3014213-1-ruanjinjie@huawei.com
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/ti/smartreflex.c

index d6219060b616d6e44ec627d0f0b904e2a9d1702a..38add2ab561372e6a118f61d7f31c8d0f199f74a 100644 (file)
@@ -202,10 +202,10 @@ static int sr_late_init(struct omap_sr *sr_info)
 
        if (sr_class->notify && sr_class->notify_flags && sr_info->irq) {
                ret = devm_request_irq(&sr_info->pdev->dev, sr_info->irq,
-                                      sr_interrupt, 0, sr_info->name, sr_info);
+                                      sr_interrupt, IRQF_NO_AUTOEN,
+                                      sr_info->name, sr_info);
                if (ret)
                        goto error;
-               disable_irq(sr_info->irq);
        }
 
        return ret;