Message ID | 20220909162043.2734873-1-echanude@redhat.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | mailbox: qcom-ipcc: Use generic_handle_irq_safe() | expand |
On 2022-09-09 12:20:43 [-0400], Eric Chanudet wrote: > PREEMPT_RT forces qcom-ipcc's handler to be threaded with interrupts > enabled, which triggers a warning in __handle_irq_event_percpu(). > > Use generic_handle_irq_safe() that can be called with or without > interrupts enabled instead. wouldn't IRQF_NO_THREAD be a better match here? > Signed-off-by: Eric Chanudet <echanude@redhat.com> Sebastian
On Tue, Sep 13, 2022 at 11:40:09AM +0200, Sebastian Andrzej Siewior wrote: > On 2022-09-09 12:20:43 [-0400], Eric Chanudet wrote: > > PREEMPT_RT forces qcom-ipcc's handler to be threaded with interrupts > > enabled, which triggers a warning in __handle_irq_event_percpu(). > > > > Use generic_handle_irq_safe() that can be called with or without > > interrupts enabled instead. > > wouldn't IRQF_NO_THREAD be a better match here? Agreed, my apologies for the delay: https://lore.kernel.org/linux-arm-msm/20221003170849.383005-1-echanude@redhat.com/ Thanks,
diff --git a/drivers/mailbox/qcom-ipcc.c b/drivers/mailbox/qcom-ipcc.c index 31d58b7d55fe..be803f324a33 100644 --- a/drivers/mailbox/qcom-ipcc.c +++ b/drivers/mailbox/qcom-ipcc.c @@ -82,7 +82,7 @@ static irqreturn_t qcom_ipcc_irq_fn(int irq, void *data) virq = irq_find_mapping(ipcc->irq_domain, hwirq); writel(hwirq, ipcc->base + IPCC_REG_RECV_SIGNAL_CLEAR); - generic_handle_irq(virq); + generic_handle_irq_safe(virq); } return IRQ_HANDLED;
PREEMPT_RT forces qcom-ipcc's handler to be threaded with interrupts enabled, which triggers a warning in __handle_irq_event_percpu(). Use generic_handle_irq_safe() that can be called with or without interrupts enabled instead. Signed-off-by: Eric Chanudet <echanude@redhat.com> --- drivers/mailbox/qcom-ipcc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)