Messages in this thread | | | Date | Fri, 15 Nov 2019 15:03:37 +0800 | From | Can Guo <> | Subject | Re: [PATCH v5 3/7] scsi: ufs: Fix up auto hibern8 enablement |
| |
On 2019-11-15 14:35, Stanley Chu wrote: > Hi Can, > > On Thu, 2019-11-14 at 22:09 -0800, Can Guo wrote: >> + if (hba->ahit != ahit) >> + hba->ahit = ahit; >> spin_unlock_irqrestore(hba->host->host_lock, flags); >> + if (!pm_runtime_suspended(hba->dev)) { > > Always do pm_runtime_get_sync() here could avoid possible racing? > > And thus AH8 could be enabled regardless of runtime status. > >> + pm_runtime_get_sync(hba->dev); >> + ufshcd_hold(hba, false); >> + ufshcd_auto_hibern8_enable(hba); >> + ufshcd_release(hba); >> + pm_runtime_put(hba->dev); >> + } >> } > > Thanks, > Stanley
Hi Stanley,
if !pm_runtime_suspended() is true, hba->dev's runtime status, other than RPM_ACTIVE, may be RPM_SUSPENDING or RPM_RESUMING. So, here for safty, do pm_runtime_get_sync() once before access registers, in case we hit corner cases in which powers and/or clocks are OFF.
Thanks, Can Guo.
| |