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@acm.org/
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