Re: [PATCH v2 0/3] scsi: libsas: handle linkrate change in sas_rediscover_dev
From: John Garry
Date: Wed May 13 2026 - 03:36:33 EST
On 13/05/2026 03:16, Xingui Yang wrote:
When a device attached to an expander phy experiences a linkrate change
(e.g., due to cable reconnection or negotiation), the current code in
sas_rediscover_dev() treats it as "broadcast flutter" and takes no action
if the SAS address and device type remain unchanged.
Can sas_rediscover_dev() check the linkrate (vs expected) to understand that this flutter has renegotiated the linkrate and then consider it not just a flutter?
However, for drivers like hisi_sas, the ITCT entry needs to be updated
to reflect the new linkrate. Without this update, the hardware continues
using stale linkrate information, which can cause performance issues or
protocol errors.
This series introduces a new LLDD callback lldd_dev_info_update() to
notify the low-level driver when a device's information changes, allowing
the driver to update its hardware structures accordingly. The callback
is designed to be extensible for future device information updates beyond
linkrate changes.
Changes from v1:
- Split into three patches.
Xingui Yang (3):
scsi: libsas: refactor sas_ex_to_ata() using new helper
sas_ex_to_dev()
scsi: libsas: add lldd_dev_info_update callback for device info
changes
scsi: hisi_sas: add support for dev info update notification
drivers/scsi/hisi_sas/hisi_sas_main.c | 16 ++++++++++++++++
drivers/scsi/libsas/sas_discover.c | 12 ++++++++++++
drivers/scsi/libsas/sas_expander.c | 25 +++++++++++++++++++------
drivers/scsi/libsas/sas_internal.h | 2 ++
include/scsi/libsas.h | 1 +
5 files changed, 50 insertions(+), 6 deletions(-)