]> Git Repo - J-linux.git/commitdiff
mailbox: qcom-ipcc: flag IRQ NO_THREAD
authorEric Chanudet <[email protected]>
Mon, 3 Oct 2022 17:08:49 +0000 (13:08 -0400)
committerJassi Brar <[email protected]>
Thu, 6 Oct 2022 02:51:58 +0000 (21:51 -0500)
PREEMPT_RT forces qcom-ipcc's handler to be threaded with interrupts
enabled, which triggers a warning in __handle_irq_event_percpu():
    irq 173 handler irq_default_primary_handler+0x0/0x10 enabled interrupts
    WARNING: CPU: 0 PID: 77 at kernel/irq/handle.c:161 __handle_irq_event_percpu+0x4c4/0x4d0

Mark it IRQF_NO_THREAD to avoid running the handler in a threaded
context with threadirqs or PREEMPT_RT enabled.

Signed-off-by: Eric Chanudet <[email protected]>
Acked-by: Sebastian Andrzej Siewior <[email protected]>
Signed-off-by: Jassi Brar <[email protected]>
drivers/mailbox/qcom-ipcc.c

index 31d58b7d55fed27bfbb6488623c026b7cff688d3..7e27acf6c0ccaa8e6323262ee20cd4e5b00deb67 100644 (file)
@@ -308,7 +308,8 @@ static int qcom_ipcc_probe(struct platform_device *pdev)
                goto err_mbox;
 
        ret = devm_request_irq(&pdev->dev, ipcc->irq, qcom_ipcc_irq_fn,
-                              IRQF_TRIGGER_HIGH | IRQF_NO_SUSPEND, name, ipcc);
+                              IRQF_TRIGGER_HIGH | IRQF_NO_SUSPEND |
+                              IRQF_NO_THREAD, name, ipcc);
        if (ret < 0) {
                dev_err(&pdev->dev, "Failed to register the irq: %d\n", ret);
                goto err_req_irq;
This page took 0.049703 seconds and 4 git commands to generate.