提交 5e8bf9a0 编写于 作者: G Grygorii Strashko 提交者: Zheng Zengkai

bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD

stable inclusion
from stable-5.10.27
commit 965e6cb8d4c9e206852e5217dc8a95f58bb00b9e
bugzilla: 51493

--------------------------------

[ Upstream commit 7d7275b3 ]

The main purpose of l3 IRQs is to catch OCP bus access errors and identify
corresponding code places by showing call stack, so it's important to
handle L3 interconnect errors as fast as possible. On RT these IRQs will
became threaded and will be scheduled much more late from the moment actual
error occurred so showing completely useless information.

Hence, mark l3 IRQs as IRQF_NO_THREAD so they will not be forced threaded
on RT or if force_irqthreads = true.

Fixes: 0ee7261c ("drivers: bus: Move the OMAP interconnect driver to drivers/bus/")
Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: NTony Lindgren <tony@atomide.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NChen Jun <chenjun102@huawei.com>
Acked-by: N  Weilong Chen <chenweilong@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 0c38c39d
...@@ -285,7 +285,7 @@ static int omap_l3_probe(struct platform_device *pdev) ...@@ -285,7 +285,7 @@ static int omap_l3_probe(struct platform_device *pdev)
*/ */
l3->debug_irq = platform_get_irq(pdev, 0); l3->debug_irq = platform_get_irq(pdev, 0);
ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler, ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler,
0x0, "l3-dbg-irq", l3); IRQF_NO_THREAD, "l3-dbg-irq", l3);
if (ret) { if (ret) {
dev_err(l3->dev, "request_irq failed for %d\n", dev_err(l3->dev, "request_irq failed for %d\n",
l3->debug_irq); l3->debug_irq);
...@@ -294,7 +294,7 @@ static int omap_l3_probe(struct platform_device *pdev) ...@@ -294,7 +294,7 @@ static int omap_l3_probe(struct platform_device *pdev)
l3->app_irq = platform_get_irq(pdev, 1); l3->app_irq = platform_get_irq(pdev, 1);
ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler, ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler,
0x0, "l3-app-irq", l3); IRQF_NO_THREAD, "l3-app-irq", l3);
if (ret) if (ret)
dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq); dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册