bus: mhi: ep: Use IRQF_NO_AUTOEN flag in request_irq()
Subsystems (2)
PATCH 1/1 bus: mhi: ep: Use IRQF_NO_AUTOEN flag in request_irq()
mhi_ep_register_controller() sets IRQ_NOAUTOEN on the doorbell IRQ descriptor before request_irq(), and the flag is never cleared on the error paths or in mhi_ep_unregister_controller(), so it stays on the descriptor after the IRQ is freed.
Pass IRQF_NO_AUTOEN to request_irq() instead. It keeps the IRQ disabled until mhi_ep_power_up() enables it, without leaving state behind on the descriptor.
---
Compile-tested only (x86_64 and arm64 defconfig + CONFIG_MHI_BUS_EP=m, W=1).
drivers/bus/mhi/ep/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/bus/mhi/ep/main.c +2 -2
@@ -1534,8 +1534,8 @@ int mhi_ep_register_controller(struct mhi_ep_cntrl *mhi_cntrl, mhi_cntrl->index = ret; -irq_set_status_flags (mhi_cntrl->irq,IRQ_NOAUTOEN ); - ret =request_irq (mhi_cntrl->irq, mhi_ep_irq,IRQF_TRIGGER_HIGH , + ret =request_irq (mhi_cntrl->irq, mhi_ep_irq, +IRQF_TRIGGER_HIGH |IRQF_NO_AUTOEN ,"doorbell_irq" , mhi_cntrl);if (ret) {dev_err (mhi_cntrl->cntrl_dev,"Failed to request Doorbell IRQ\n" );
base-commit: f0100363d8c374bd8e9ea7c9ba02744f0b802ca4
Signature · 1 line
2.43.0
Quoted 10 lines · Yuho Choi
mhi_ep_register_controller()setsIRQ_NOAUTOENon the doorbell IRQ descriptor beforerequest_irq(), and the flag is never cleared on the error paths or inmhi_ep_unregister_controller(), so it stays on the descriptor after the IRQ is freed.Pass
IRQF_NO_AUTOENtorequest_irq()instead. It keeps the IRQ disabled untilmhi_ep_power_up()enables it, without leaving state behind on the descriptor.Signed-off-by Yuho Choi <[email protected]>
- Mani
Signature · 1 line
மணிவண்ணன் சதாசிவம்
Quoted 10 lines · Yuho Choi
mhi_ep_register_controller()setsIRQ_NOAUTOENon the doorbell IRQ descriptor beforerequest_irq(), and the flag is never cleared on the error paths or inmhi_ep_unregister_controller(), so it stays on the descriptor after the IRQ is freed.Pass
IRQF_NO_AUTOENtorequest_irq()instead. It keeps the IRQ disabled untilmhi_ep_power_up()enables it, without leaving state behind on the descriptor.[...]
Applied, thanks!
[1/1] bus: mhi: ep: Use IRQF_NO_AUTOEN flag in request_irq()
commit: 3ae2c076ed38afe76b4c223fbc2e87738a5b44dd
Best regards,
Signature · 1 line
மணிவண்ணன் சதாசிவம்