Re: [PATCH v2] scsi: libsas: Fix exp-attached end device cannot be scanned in again after probe failed

From: yangxingui
Date: Fri May 31 2024 - 04:54:18 EST



Hi John,
On 2024/5/28 18:11, John Garry wrote:
On 25/05/2024 04:08, yangxingui wrote:
Why do these new additions not cover the same job which those calls to the same functions @out covers?
For asynchronous probes like sata, the failure occurs after @out. After adding the device to port_delete_list, the port is not deleted immediately. This may cause the device to fail to create a new port because the previous port has not been deleted when the device attached again. as follow:

1. REVALIDATING DOMAIN
2. new device attached
3. ata_sas_async_probe
4. done REVALIDATING DOMAIN
5. @out, handle parent->port->sas_port_del_list
6. sata probe failed
7. add phy->port->list to parent->port->sas_port_del_list // port won't delete now

8、REVALIDATING DOMAIN
9、new device attached
10、new port create failed, as port already exits.

ok, so next please consider these items:

- add a helper for calling sas_destruct_devices() and sas_destruct_ports().

- add a comment on why we have this new extra call to sas_destruct_devices() and sas_destruct_ports()

- can we put the new call to sas_destruct_devices() and sas_destruct_ports() after 7, above? i.e. the
sas_probe_devices() call? It would look a bit neater.

Yes, this is much simpler. I will test it more according to your suggestion.

Thanks,
Xingui