SATA devices on an expander may be removed and not be found again when I_T nexus reset and revalidation are processed simultaneously, which is probable to happen in hisi_sas_clear_nexus_ha(). The issue came up since commit 71453bd9d1bf ("scsi: hisi_sas: Use sas_ata_wait_after_reset() in IT nexus reset"), where the ex_phy's change count is updated in hisi_sas_debug_I_T_nexus_reset(), stopping future revalidation from discovering the SATA devices after link reset. This patchset fixes the issue. Jie Zhan (5): Revert "scsi: hisi_sas: Drain bcast events in hisi_sas_rescan_topology()" Revert "scsi: hisi_sas: Don't send bcast events from HW during nexus HA reset" scsi: libsas: Add smp_ata_check_ready_type() scsi: hisi_sas: Fix SATA devices missing issue during I_T nexus reset scsi: libsas: Do not export sas_ata_wait_after_reset() drivers/scsi/hisi_sas/hisi_sas_main.c | 31 ++++++++------------------- drivers/scsi/libsas/sas_ata.c | 28 ++++++++++++++++++++++-- drivers/scsi/libsas/sas_expander.c | 4 ++-- drivers/scsi/libsas/sas_internal.h | 2 ++ include/scsi/sas_ata.h | 7 +++--- 5 files changed, 42 insertions(+), 30 deletions(-) -- 2.30.0