mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
mhi: core: fix error handling in time synchronization function
Error handling in time synchronization function is not appropriate as an error in disabling link level low power modes could cause a spin lock to be unlocked without being locked. Change-Id: I06177e587f4010b0558bf1331d3b80daf6948e53 Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
This commit is contained in:
parent
dd0fe1d092
commit
ff5352870f
1 changed files with 6 additions and 4 deletions
|
|
@ -2453,13 +2453,13 @@ int mhi_get_remote_time_sync(struct mhi_device *mhi_dev,
|
|||
/* not all devices support time feature */
|
||||
if (!mhi_tsync) {
|
||||
ret = -EIO;
|
||||
goto err_unlock;
|
||||
goto error_unlock;
|
||||
}
|
||||
|
||||
/* bring to M0 state */
|
||||
ret = __mhi_device_get_sync(mhi_cntrl);
|
||||
if (ret)
|
||||
goto err_unlock;
|
||||
goto error_unlock;
|
||||
|
||||
read_lock_bh(&mhi_cntrl->pm_lock);
|
||||
if (unlikely(MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state))) {
|
||||
|
|
@ -2472,8 +2472,10 @@ int mhi_get_remote_time_sync(struct mhi_device *mhi_dev,
|
|||
|
||||
/* disable link level low power modes */
|
||||
ret = mhi_cntrl->lpm_disable(mhi_cntrl, mhi_cntrl->priv_data);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
read_lock_bh(&mhi_cntrl->pm_lock);
|
||||
goto error_invalid_state;
|
||||
}
|
||||
|
||||
/*
|
||||
* time critical code to fetch device times,
|
||||
|
|
@ -2495,7 +2497,7 @@ int mhi_get_remote_time_sync(struct mhi_device *mhi_dev,
|
|||
error_invalid_state:
|
||||
mhi_cntrl->wake_put(mhi_cntrl, false);
|
||||
read_unlock_bh(&mhi_cntrl->pm_lock);
|
||||
err_unlock:
|
||||
error_unlock:
|
||||
mutex_unlock(&mhi_cntrl->tsync_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue