* [PATCH] bus: mhi: ep: cancel reset work during controller teardown
@ 2026-10-18 4:06 Jiale Yao
2026-10-18 6:34 ` Greg Kroah-Hartman
0 siblings, 1 reply; 2+ messages in thread
From: Jiale Yao @ 2026-10-18 4:06 UTC (permalink / raw)
To: Manivannan Sadhasivam, Jeff Hugo, Alex Elder, Greg Kroah-Hartman,
mhi, linux-arm-msm, linux-kernel
Cc: Jiale Yao
The doorbell IRQ schedules reset_work on the system workqueue when the
host requests an MHI reset. The controller teardown only drains the
private MHI workqueue before releasing the controller state, so
reset_work can still run after that state has been freed.
Cancel reset_work before destroying the private workqueue and releasing
the controller resources. The caller is required to power down the
controller first, so the IRQ can no longer queue the work at this point.
Fixes: 7a97b6b47353 ("bus: mhi: ep: Add support for handling MHI_RESET")
Signed-off-by: Jiale Yao <yaojiale02@163.com>
---
drivers/bus/mhi/ep/main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
index db7ee6547eef..a9695e1a75ab 100644
--- a/drivers/bus/mhi/ep/main.c
+++ b/drivers/bus/mhi/ep/main.c
@@ -1596,6 +1596,7 @@ void mhi_ep_unregister_controller(struct mhi_ep_cntrl *mhi_cntrl)
{
struct mhi_ep_device *mhi_dev = mhi_cntrl->mhi_dev;
+ cancel_work_sync(&mhi_cntrl->reset_work);
destroy_workqueue(mhi_cntrl->wq);
free_irq(mhi_cntrl->irq, mhi_cntrl);
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] bus: mhi: ep: cancel reset work during controller teardown
2026-10-18 4:06 [PATCH] bus: mhi: ep: cancel reset work during controller teardown Jiale Yao
@ 2026-10-18 6:34 ` Greg Kroah-Hartman
0 siblings, 0 replies; 2+ messages in thread
From: Greg Kroah-Hartman @ 2026-10-18 6:34 UTC (permalink / raw)
To: Jiale Yao
Cc: Manivannan Sadhasivam, Jeff Hugo, Alex Elder, mhi, linux-arm-msm,
linux-kernel
On Sun, Oct 18, 2026 at 12:06:14PM +0800, Jiale Yao wrote:
> The doorbell IRQ schedules reset_work on the system workqueue when the
> host requests an MHI reset. The controller teardown only drains the
> private MHI workqueue before releasing the controller state, so
> reset_work can still run after that state has been freed.
>
> Cancel reset_work before destroying the private workqueue and releasing
> the controller resources. The caller is required to power down the
> controller first, so the IRQ can no longer queue the work at this point.
>
> Fixes: 7a97b6b47353 ("bus: mhi: ep: Add support for handling MHI_RESET")
> Signed-off-by: Jiale Yao <yaojiale02@163.com>
> ---
> drivers/bus/mhi/ep/main.c | 1 +
> 1 file changed, 1 insertion(+)
How was this found and tested? What about a cc: stable?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-18 6:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-18 4:06 [PATCH] bus: mhi: ep: cancel reset work during controller teardown Jiale Yao
2026-10-18 6:34 ` Greg Kroah-Hartman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.