mailbox: qcom-ipcc: flag IRQ NO_THREAD
authorEric Chanudet <echanude@redhat.com>
Mon, 3 Oct 2022 17:08:49 +0000 (13:08 -0400)
committerJassi Brar <jaswinder.singh@linaro.org>
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 <echanude@redhat.com>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
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;