On 25/05/2024 04:08, yangxingui wrote:
ok, so next please consider these items: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.
- 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.