Messages in this thread |  | | Date | Mon, 17 May 2021 11:22:27 +0800 | From | Can Guo <> | Subject | Re: [PATCH v1 5/6] scsi: ufs: Let host_sem cover the entire system suspend/resume |
| |
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.
|  |