From c006fd5f9f4c1730877a404b06599aecae07836a Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Fri, 13 Mar 2020 12:58:16 -0700 Subject: [PATCH] mhi: core: Check for pm error state before asserting dev wake After calling remove call back in mhi_pm_disable_transition there is possibility of MHI client calling mhi_device_get_sync which increments dev wake. This results in to MHI ASSERT due to non zero dev wake count. Fix this issue by checking pm error state before incrementing dev wake count. Change-Id: I817d571f210b77aef444a7ae1f9b2cc5af057ab2 Signed-off-by: Hemant Kumar --- drivers/bus/mhi/core/mhi_pm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/bus/mhi/core/mhi_pm.c b/drivers/bus/mhi/core/mhi_pm.c index 34a8fea6df03..c46277eb2145 100644 --- a/drivers/bus/mhi/core/mhi_pm.c +++ b/drivers/bus/mhi/core/mhi_pm.c @@ -1493,6 +1493,11 @@ int __mhi_device_get_sync(struct mhi_controller *mhi_cntrl) int ret; read_lock_bh(&mhi_cntrl->pm_lock); + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + read_unlock_bh(&mhi_cntrl->pm_lock); + return -EIO; + } + mhi_cntrl->wake_get(mhi_cntrl, true); if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) mhi_trigger_resume(mhi_cntrl);