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,
Bart.