This series mainly fixes below two things which come along with UFS error handling in some corner cases. [1] Concurrency problems btw err_handler and paths like system suspend/resume/shutdown and async scan. [2] Race condition btw UFS error recovery and task abort which happens to W-LU during suspend/resume/shutdown. The 1st change is tested with error/fault injections to power mode change operations during system PM operations and async scan. The 2nd change is tested by mimicing SSU cmd timeout during suspend/resume/shutdown. The 3rd one is just a minor change to a check condition in IRQ handler such that the driver can dump host regs when AH8 error happens. Change since v6: - Updated the check condition of updating clk_scaling.active_reqs in __ufshcd_transfer_req_compl() Change since v5: - Incorporated Stanley's comment Change since v4: - Fixed a typo found by Stanley. Change since v3: - Slightly updated some commit msg lines, no code changes. Change since v2: - Added one more minor change into this series. Change since v1: - Removed Change-Id from commit msg Can Guo (3): scsi: ufs: Serialize eh_work with system PM events and async scan scsi: ufs: Fix a race condition between ufshcd_abort and eh_work scsi: ufs: Print host regs in IRQ handler when AH8 error happens drivers/scsi/ufs/ufshcd.c | 127 ++++++++++++++++++++++++++++++++-------------- drivers/scsi/ufs/ufshcd.h | 3 ++ 2 files changed, 92 insertions(+), 38 deletions(-) -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.