Messages in this thread | | | Date | Mon, 23 Jan 2023 10:10:06 -0700 | Subject | Re: [PATCH] bus: mhi: ep: Change state_lock to mutex | From | Jeffrey Hugo <> |
| |
On 1/23/2023 12:50 AM, Manivannan Sadhasivam wrote: > state_lock, the spinlock type is meant to protect race against concurrent > MHI state transitions. In mhi_ep_set_m0_state(), while the state_lock is > being held, the channels are resumed in mhi_ep_resume_channels() if the > previous state was M3. This causes sleeping in atomic bug, since > mhi_ep_resume_channels() use mutex internally. > > Since the state_lock is supposed to be held throughout the state change, > it is not ideal to drop the lock before calling mhi_ep_resume_channels(). > So to fix this issue, let's change the type of state_lock to mutex. This > would also allow holding the lock throughout all state transitions thereby > avoiding any potential race. > > Cc: <stable@vger.kernel.org> # 5.19 > Fixes: e4b7b5f0f30a ("bus: mhi: ep: Add support for suspending and resuming channels") > Reported-by: Dan Carpenter <error27@gmail.com> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Looks sane. Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
| |