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.