Thread (14 messages) 14 messages, 2 authors, 2021-05-17

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

From: Can Guo <hidden>
Date: 2021-05-17 03:22:37
Also in: lkml

Hi Bart,

On 2021-05-14 11:55, Bart Van Assche wrote:
On 5/12/21 10:55 PM, Can Guo wrote:
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help