Takashi Iwai b5b682
From 7d7275b3e866cf8092bd12553ec53ba26864f7bb Mon Sep 17 00:00:00 2001
Takashi Iwai b5b682
From: Grygorii Strashko <grygorii.strashko@ti.com>
Takashi Iwai b5b682
Date: Thu, 28 Jan 2021 21:15:48 +0200
Takashi Iwai b5b682
Subject: [PATCH] bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
Takashi Iwai b5b682
Git-commit: 7d7275b3e866cf8092bd12553ec53ba26864f7bb
Takashi Iwai b5b682
Patch-mainline: v5.12-rc5
Takashi Iwai b5b682
References: git-fixes
Takashi Iwai b5b682
Takashi Iwai b5b682
The main purpose of l3 IRQs is to catch OCP bus access errors and identify
Takashi Iwai b5b682
corresponding code places by showing call stack, so it's important to
Takashi Iwai b5b682
handle L3 interconnect errors as fast as possible. On RT these IRQs will
Takashi Iwai b5b682
became threaded and will be scheduled much more late from the moment actual
Takashi Iwai b5b682
error occurred so showing completely useless information.
Takashi Iwai b5b682
Takashi Iwai b5b682
Hence, mark l3 IRQs as IRQF_NO_THREAD so they will not be forced threaded
Takashi Iwai b5b682
on RT or if force_irqthreads = true.
Takashi Iwai b5b682
Takashi Iwai b5b682
Fixes: 0ee7261c9212 ("drivers: bus: Move the OMAP interconnect driver to drivers/bus/")
Takashi Iwai b5b682
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Takashi Iwai b5b682
Signed-off-by: Tony Lindgren <tony@atomide.com>
Takashi Iwai b5b682
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai b5b682
Takashi Iwai b5b682
---
Takashi Iwai b5b682
 drivers/bus/omap_l3_noc.c | 4 ++--
Takashi Iwai b5b682
 1 file changed, 2 insertions(+), 2 deletions(-)
Takashi Iwai b5b682
Takashi Iwai b5b682
diff --git a/drivers/bus/omap_l3_noc.c b/drivers/bus/omap_l3_noc.c
Takashi Iwai b5b682
index b040447575ad..dcfb32ee5cb6 100644
Takashi Iwai b5b682
--- a/drivers/bus/omap_l3_noc.c
Takashi Iwai b5b682
+++ b/drivers/bus/omap_l3_noc.c
Takashi Iwai b5b682
@@ -285,7 +285,7 @@ static int omap_l3_probe(struct platform_device *pdev)
Takashi Iwai b5b682
 	 */
Takashi Iwai b5b682
 	l3->debug_irq = platform_get_irq(pdev, 0);
Takashi Iwai b5b682
 	ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler,
Takashi Iwai b5b682
-			       0x0, "l3-dbg-irq", l3);
Takashi Iwai b5b682
+			       IRQF_NO_THREAD, "l3-dbg-irq", l3);
Takashi Iwai b5b682
 	if (ret) {
Takashi Iwai b5b682
 		dev_err(l3->dev, "request_irq failed for %d\n",
Takashi Iwai b5b682
 			l3->debug_irq);
Takashi Iwai b5b682
@@ -294,7 +294,7 @@ static int omap_l3_probe(struct platform_device *pdev)
Takashi Iwai b5b682
 
Takashi Iwai b5b682
 	l3->app_irq = platform_get_irq(pdev, 1);
Takashi Iwai b5b682
 	ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler,
Takashi Iwai b5b682
-			       0x0, "l3-app-irq", l3);
Takashi Iwai b5b682
+			       IRQF_NO_THREAD, "l3-app-irq", l3);
Takashi Iwai b5b682
 	if (ret)
Takashi Iwai b5b682
 		dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq);
Takashi Iwai b5b682
 
Takashi Iwai b5b682
-- 
Takashi Iwai b5b682
2.26.2
Takashi Iwai b5b682