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