[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d4b6ed9b-8beb-025b-fc60-078a3fd7e471@huawei.com>
Date: Fri, 31 May 2024 16:53:41 +0800
From: yangxingui <yangxingui@...wei.com>
To: John Garry <john.g.garry@...cle.com>, <yanaijie@...wei.com>,
<jejb@...ux.ibm.com>, <martin.petersen@...cle.com>,
<damien.lemoal@...nsource.wdc.com>
CC: <linux-scsi@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linuxarm@...wei.com>, <prime.zeng@...ilicon.com>,
<chenxiang66@...ilicon.com>, <kangfenglong@...wei.com>
Subject: Re: [PATCH v2] scsi: libsas: Fix exp-attached end device cannot be
scanned in again after probe failed
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
Powered by blists - more mailing lists