Hi Martin, Please consider the patches in this series for kernel v5.15. Thank you, Bart. Changes compared to v2: - Included a stack corruption fix. - Dropped patch "Remove a local variable" and added patches "Revert "Utilize Transfer Request List Completion Notification Register"" and "Optimize serialization of setup_xfer_req() calls". - Added patch "Optimize serialization of setup_xfer_req() calls". Changes compared to v1: - Left out the SCSI core patches for the SCSI error handler in order not to delay the UFS patches by the conversation around the SCSI error handler patches. - Restored the WARN_ON_ONCE(tag < 0) statements in the patch that removes ufshcd_valid_tag(). - Split "Fix a race in the completion path" in two patches. - Added a fault injection patch. Bart Van Assche (18): scsi: ufs: Fix memory corruption by ufshcd_read_desc_param() scsi: ufs: Reduce power management code duplication scsi: ufs: Only include power management code if necessary scsi: ufs: Rename the second ufshcd_probe_hba() argument scsi: ufs: Use DECLARE_COMPLETION_ONSTACK() where appropriate scsi: ufs: Remove ufshcd_valid_tag() scsi: ufs: Verify UIC locking requirements at runtime scsi: ufs: Improve static type checking for the host controller state scsi: ufs: Remove several wmb() calls scsi: ufs: Inline ufshcd_outstanding_req_clear() scsi: ufs: Revert "Utilize Transfer Request List Completion Notification Register" scsi: ufs: Optimize serialization of setup_xfer_req() calls scsi: ufs: Optimize SCSI command processing scsi: ufs: Fix the SCSI abort handler scsi: ufs: Request sense data asynchronously scsi: ufs: Synchronize SCSI and UFS error handling scsi: ufs: Retry aborted SCSI commands instead of completing these successfully scsi: ufs: Add fault injection support drivers/scsi/ufs/Kconfig | 7 + drivers/scsi/ufs/Makefile | 1 + drivers/scsi/ufs/cdns-pltfrm.c | 7 +- drivers/scsi/ufs/tc-dwc-g210-pci.c | 32 +- drivers/scsi/ufs/tc-dwc-g210-pltfrm.c | 7 +- drivers/scsi/ufs/ufs-exynos.c | 7 +- drivers/scsi/ufs/ufs-fault-injection.c | 70 ++++ drivers/scsi/ufs/ufs-fault-injection.h | 24 ++ drivers/scsi/ufs/ufs-hisi.c | 7 +- drivers/scsi/ufs/ufs-mediatek.c | 7 +- drivers/scsi/ufs/ufs-qcom.c | 7 +- drivers/scsi/ufs/ufshcd-pci.c | 48 +-- drivers/scsi/ufs/ufshcd-pltfrm.c | 47 --- drivers/scsi/ufs/ufshcd-pltfrm.h | 18 - drivers/scsi/ufs/ufshcd.c | 491 +++++++++++-------------- drivers/scsi/ufs/ufshcd.h | 63 ++-- drivers/scsi/ufs/ufshci.h | 1 - 17 files changed, 373 insertions(+), 471 deletions(-) create mode 100644 drivers/scsi/ufs/ufs-fault-injection.c create mode 100644 drivers/scsi/ufs/ufs-fault-injection.h