The following patches were made over Linus's tree which contains a fix for sd which was not in Martin's branches. The patches allow scsi_execute_cmd users to have scsi-ml retry the cmd for it instead of the caller having to parse the error and loop itself. drivers/scsi/Kconfig | 9 + drivers/scsi/ch.c | 27 ++- drivers/scsi/device_handler/scsi_dh_hp_sw.c | 49 +++-- drivers/scsi/device_handler/scsi_dh_rdac.c | 84 +++---- drivers/scsi/scsi_lib.c | 26 ++- drivers/scsi/scsi_lib_test.c | 330 ++++++++++++++++++++++++++++ drivers/scsi/scsi_scan.c | 107 +++++---- drivers/scsi/scsi_transport_spi.c | 35 +-- drivers/scsi/sd.c | 326 +++++++++++++++++---------- drivers/scsi/ses.c | 66 ++++-- drivers/scsi/sr.c | 38 ++-- drivers/ufs/core/ufshcd.c | 22 +- 12 files changed, 822 insertions(+), 297 deletions(-) v13: - Rename scsi_execute_cmd's retries variable and update those comments and the scsi_failure struct to try and make it clear how the retries values differ. - Fix up some misspelled and add missing words in patch descriptions - Fix up patch 6's description. v12: - Fix bug where a user could request no retries and skip going through the scsi-eh. - Drop support for allowing caller to have scsi-ml not retry failures (we only allow caller to request retries). - Fix formatting. - Add support to control total number of retries. - Fix kunit tests to add a missing test and comments. - Fix missing SCMD_FAILURE_ASCQ_ANY in sd_spinup_disk. v11: - Document scsi_failure.result special values - Fix sshdr fix git commit message where there was a missing word - Use designated initializers for cdb setup - Fix up various coding style comments from John like redoing if/else error/success checks. - Add patch to fix rdac issue where stale SCSH_DH values were returned - Remove old comment from: "[PATCH v10 16/33] scsi: spi: Have scsi-ml retry spi_execute errors" - Drop EOPNOTSUPP use from: "[PATCH v10 17/33] scsi: sd: Fix sshdr use in sd_suspend_common" - Init errno to 0 when declared in: "[PATCH v10 20/33] scsi: ch: Have scsi-ml retry ch_do_scsi errors" - Add diffstat below v10: - Drop "," after {}. - Hopefully fix outlook issues. v9: - Drop spi_execute changes from [PATCH] scsi: spi: Fix sshdr use - Change git commit message for sshdr use fixes. v8: - Rebase. - Saw the discussion about the possible bug where callers are accessing the sshdr when it's not setup, so I added some patches for that since I was going over the same code. v7: - Rebase against scsi_execute_cmd patchset. v6: - Fix kunit build when it's built as a module but scsi is not. - Drop [PATCH 17/35] scsi: ufshcd: Convert to scsi_exec_req because that driver no longer uses scsi_execute. - Convert ufshcd to use the scsi_failures struct because it now just does direct retries and does not do it's own deadline timing. - Add back memset in read_capacity_16. - Remove memset in get_sectorsize and replace with { } to init buf. v5: - Fix spelling (made sure I ran checkpatch strict) - Drop SCMD_FAILURE_NONE - Rename SCMD_FAILURE_ANY - Fix media_not_present handling where it was being retried instead of failed. - Fix ILLEGAL_REQUEST handling in read_capacity_16 so it was not retried. - Fix coding style, spelling and and naming convention in kunit and added more tests to handle cases like the media_not_present one where we want to force failures instead of retries. - Drop cxlflash patch because it actually checked it's internal state before performing a retry which we currently do not support. v4: - Redefine cmd definitions if the cmd is touched. - Fix up coding style issues. - Use sam_status enum. - Move failures initialization to scsi_initialize_rq (also fixes KASAN error). - Add kunit test. - Add function comments. v3: - Use a for loop in scsi_check_passthrough - Fix result handling/testing. - Fix scsi_status_is_good handling. - make __scsi_exec_req take a const arg - Fix formatting in patch 24 v2: - Rename scsi_prep_sense - Change scsi_check_passthrough's loop and added some fixes - Modified scsi_execute* so it uses a struct to pass in args