[PATCH v1] scsi: ufs: correct ufshcd_shutdown flow

Bart Van Assche bvanassche at acm.org
Fri Jul 22 14:07:10 PDT 2022


On 7/20/22 21:30, Peter Wang wrote:
> On 7/21/22 5:40 AM, Bart Van Assche wrote:
>> On 7/19/22 06:02, peter.wang at mediatek.com wrote:
>>> -    pm_runtime_get_sync(hba->dev);
>>> +    /* Wait ufshcd_wl_shutdown clear ufs state, timeout 500 ms */
>>> +    while (!ufshcd_is_ufs_dev_poweroff(hba) || 
>>> !ufshcd_is_link_off(hba)) {
>>> +        if (ktime_after(ktime_get(), timeout))
>>> +            goto out;
>>> +        msleep(1);
>>> +    }
>>
>> Please explain why this wait loop has been introduced.
> 
> Both ufshcd_shutdown and ufshcd_wl_shutdown could run concurrently.

Are you sure of this? In drivers/base/core.c I see a sequential loop in 
the device_shutdown() function. So how could two shutdown functions run 
concurrently?

Thanks,

Bart.



More information about the Linux-mediatek mailing list