Re: [PATCH] scsi: libsas: Fix disk not being scanned in after being removed

From: yangxingui
Date: Tue Feb 27 2024 - 04:43:29 EST


Hi John,

On 2024/2/27 17:06, John Garry wrote:
On 27/02/2024 07:16, Jason Yan wrote:

Can we directly set phy->negotiated_linkrate = SAS_PHY_DISABLED here? For an empty PHY the other variables means nothing, so why bother get and update them?
The value of the negotiated link rate has two possible values ​​in the current processing branch: SAS_LINK_RATE_UNKNOWN and SAS_PHY_DISABLED, and both come from disc_resp. If we do not use disc_resp, but set a fixed value SAS_PHY_DISABLED for it, it may not be appropriate.

But we know that the phy is disabled, right? It's our phy, isn't it?
Yes, just like the previous submission, if we disable phy ourselves through the sysfs node, we can configure the negotiation rate to SAS_PHY_DISABLED by setting phy->phy->enable to 0. It might be better to use sas_set_ex_phy() as you described before, it will refresh other phy information synchronously, such as sas_address, device_type, target_protocols, etc. If we only update the negotiation rate and maintain the old information, is it because it is special? Is it better to update phy information uniformly?

Thanks,
Xingui