mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 07:31:29 +00:00
3c2673a09c
SATA devices on an expander may be removed and not be found again when I_T nexus reset and revalidation are processed simultaneously. The issue comes from: - Revalidation can remove SATA devices in link reset, e.g. in hisi_sas_clear_nexus_ha(). - However, hisi_sas_debug_I_T_nexus_reset() polls the state of a SATA device on an expander after sending link_reset, where it calls: hisi_sas_debug_I_T_nexus_reset sas_ata_wait_after_reset ata_wait_after_reset ata_wait_ready smp_ata_check_ready sas_ex_phy_discover sas_ex_phy_discover_helper sas_set_ex_phy The ex_phy's change count is updated in sas_set_ex_phy(), so SATA devices after a link reset may not be found later through revalidation. A similar issue was reported in: commit |
||
---|---|---|
.. | ||
hisi_sas_main.c | ||
hisi_sas_v1_hw.c | ||
hisi_sas_v2_hw.c | ||
hisi_sas_v3_hw.c | ||
hisi_sas.h | ||
Kconfig | ||
Makefile |