2024-06-11 17:05:10

by Andrew Davis

[permalink] [raw]
Subject: [PATCH] mailbox: omap: Fix mailbox interrupt sharing

Multiple mailbox users can share one interrupt line. This flag was
mistakenly dropped as part of the FIFO removal. Mark the IRQ as shared.

Reported-by: Beleswar Padhi <[email protected]>
Fixes: 3f58c1f4206f ("mailbox: omap: Remove kernel FIFO message queuing")
Signed-off-by: Andrew Davis <[email protected]>
---
drivers/mailbox/omap-mailbox.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
index 46747559b438f..7a87424657a15 100644
--- a/drivers/mailbox/omap-mailbox.c
+++ b/drivers/mailbox/omap-mailbox.c
@@ -230,7 +230,8 @@ static int omap_mbox_startup(struct omap_mbox *mbox)
int ret = 0;

ret = request_threaded_irq(mbox->irq, NULL, mbox_interrupt,
- IRQF_ONESHOT, mbox->name, mbox);
+ IRQF_SHARED | IRQF_ONESHOT, mbox->name,
+ mbox);
if (unlikely(ret)) {
pr_err("failed to register mailbox interrupt:%d\n", ret);
return ret;
--
2.39.2



2024-06-12 10:55:58

by Beleswar Padhi

[permalink] [raw]
Subject: Re: [PATCH] mailbox: omap: Fix mailbox interrupt sharing


On 11/06/24 22:34, Andrew Davis wrote:
> Multiple mailbox users can share one interrupt line. This flag was
> mistakenly dropped as part of the FIFO removal. Mark the IRQ as shared.
>
> Reported-by: Beleswar Padhi <[email protected]>
> Fixes: 3f58c1f4206f ("mailbox: omap: Remove kernel FIFO message queuing")
> Signed-off-by: Andrew Davis <[email protected]>
Tested-by: Beleswar Padhi <[email protected]>
> ---
> drivers/mailbox/omap-mailbox.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
> index 46747559b438f..7a87424657a15 100644
> --- a/drivers/mailbox/omap-mailbox.c
> +++ b/drivers/mailbox/omap-mailbox.c
> @@ -230,7 +230,8 @@ static int omap_mbox_startup(struct omap_mbox *mbox)
> int ret = 0;
>
> ret = request_threaded_irq(mbox->irq, NULL, mbox_interrupt,
> - IRQF_ONESHOT, mbox->name, mbox);
> + IRQF_SHARED | IRQF_ONESHOT, mbox->name,
> + mbox);
> if (unlikely(ret)) {
> pr_err("failed to register mailbox interrupt:%d\n", ret);
> return ret;