While trying to simplify the ufs core driver with the guard() macro [1], Bart made note of the abuse of the scsi host lock in the ufs driver. Indeed, the host lock is deeply entangled in various flows across the driver, as if it was some occasional default synchronization mean. Here is the first part of defusing it, replace some of its occurrences of host registers accesses, with a dedicated host register lock. Doing this in phases seems like a reasonable approach, given the myriad use. [1] https://lore.kernel.org/linux-scsi/0b031b8f-c07c-42ef-af93-7336439d3c37@xxxxxxx/ Avri Altman (4): scsi: ufs: core: Introduce a new host register lock scsi: ufs: core: Use reg_lock to protect UTMRLCLR scsi: ufs: core: Use reg_lock to protect UTRLCLR scsi: ufs: core: Use reg_lock to protect HCE register drivers/ufs/core/ufshcd.c | 38 ++++++++++++++++++++++++-------------- include/ufs/ufshcd.h | 3 +++ 2 files changed, 27 insertions(+), 14 deletions(-) -- 2.25.1