]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
bus: mhi: ep: Fix potential deadlock in mhi_ep_reset_worker()
authorSumit Kumar <sumit.kumar@oss.qualcomm.com>
Tue, 14 Apr 2026 06:29:40 +0000 (11:59 +0530)
committerManivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Tue, 12 May 2026 14:30:53 +0000 (20:00 +0530)
commit9dece4435d396e9877e27483552b910ba8654169
treeccff19c854cf1f38875ee9ef52b49707bd7e4100
parent86f6dc05ea051fa03ebc03174bc00f734593465d
bus: mhi: ep: Fix potential deadlock in mhi_ep_reset_worker()

There is a potential deadlock scenario in mhi_ep_reset_worker() where
the state_lock mutex is acquired twice in the same call chain:

mhi_ep_reset_worker()
  mutex_lock(&mhi_cntrl->state_lock)
    mhi_ep_power_up()
      mhi_ep_set_ready_state()
        mutex_lock(&mhi_cntrl->state_lock)  <- Deadlock

Fix this by releasing the state_lock before calling mhi_ep_power_up().
The lock is only needed to protect current MHI state read operation. The
lock can be safely released before proceeding with the power up sequence.

Fixes: 7a97b6b47353 ("bus: mhi: ep: Add support for handling MHI_RESET")
Signed-off-by: Sumit Kumar <sumit.kumar@oss.qualcomm.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Link: https://patch.msgid.link/20260414-reset_worker_deadlock-v2-1-42fd682b45db@oss.qualcomm.com
drivers/bus/mhi/ep/main.c