Re: [PATCH] mailbox: altera: shut down RX polling timer on channel teardown
From: Jassi Brar
Date: Sun Oct 11 2026 - 21:35:41 EST
On Fri, Sep 4, 2026 at 1:19 AM Runyu Xiao <runyu.xiao@xxxxxxxxxx> wrote:
>
> The RX polling callback unconditionally rearms the timer after it
> processes mailbox data. altera_mbox_shutdown() uses
> timer_delete_sync(), which waits for a running callback but does not
> prevent that callback from rearming the timer after the deletion.
>
> Use timer_shutdown_sync() for the final polling teardown so the timer
> cannot be queued again while the mailbox channel is being released.
> The timer is reinitialized with timer_setup() on a later channel startup,
> so polling mode remains reusable.
>
> Fixes: f62092f6d77d ("mailbox: Add Altera mailbox driver")
> Cc: stable@xxxxxxxxxxxxxxx
> Assisted-by: Codex:GPT-5
> Signed-off-by: Runyu Xiao <runyu.xiao@xxxxxxxxxx>
>
> diff --git a/drivers/mailbox/mailbox-altera.c b/drivers/mailbox/mailbox-altera.c
> index 17278c257..7cb91413e 100644
> --- a/drivers/mailbox/mailbox-altera.c
> +++ b/drivers/mailbox/mailbox-altera.c
> @@ -270,7 +270,7 @@ static void altera_mbox_shutdown(struct mbox_chan *chan)
> writel_relaxed(~0, mbox->mbox_base + MAILBOX_INTMASK_REG);
> free_irq(mbox->irq, chan);
> } else if (!mbox->is_sender) {
> - timer_delete_sync(&mbox->rxpoll_timer);
> + timer_shutdown_sync(&mbox->rxpoll_timer);
> }
> }
>
> --
> 2.34.1
>
Applied to mailbox/for-next
Thanks
Jassi