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.
Thanks,
John