Re: [PATCH v1 5/6] scsi: ufs: Let host_sem cover the entire system suspend/resume

From: Can Guo
Date: Sun May 16 2021 - 23:22:48 EST


Hi Bart,

On 2021-05-14 11:55, Bart Van Assche wrote:
On 5/12/21 10:55 PM, Can Guo wrote:
UFS error handling now is doing more than just re-probing, but also sending
scsi cmds, e.g., for clearing UACs, and recovering runtime PM error, which
may change runtime status of scsi devices. To protect system suspend/resume
from being disturbed by error handling, move the host_sem from wl pm ops
to ufshcd_suspend_prepare() and ufshcd_resume_complete().

In ufshcd.h I found the following:

* @host_sem: semaphore used to serialize concurrent contexts

That's the wrong way to use a synchronization object. A synchronization
object must protect data instead of code. Does host_sem perhaps need to
be split into multiple synchronization objects?

Thanks for the comments. These contexts are changing critical data and
registers, so the sem is used to protect data actually, just like the
scaling_lock protecting scaling and cmd transations.

Thanks,

Can Guo.


Thanks,

Bart.