diff options
author | Alexander Motin <mav@FreeBSD.org> | 2022-05-09 21:57:29 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2022-05-16 13:53:02 +0000 |
commit | 718cb64a1f7bd375831aa9add80c378ddac63d14 (patch) | |
tree | cadf5c4a56b6457636fd8b60e475ed3709ac1b3a | |
parent | 9d0620722654cf65ce9fa6f1938b213f7130a578 (diff) | |
download | src-718cb64a1f7bd375831aa9add80c378ddac63d14.tar.gz src-718cb64a1f7bd375831aa9add80c378ddac63d14.zip |
mpsutil: Fix device speed reporting.
Report controller SAS phy speed only for directly attached devices.
For others try to read and report parent expander phy speed.
MFC after: 1 week
(cherry picked from commit bce02a0ea43a0cd4ee9aa23c815189d2ccb83745)
-rw-r--r-- | usr.sbin/mpsutil/mps_show.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/usr.sbin/mpsutil/mps_show.c b/usr.sbin/mpsutil/mps_show.c index d293003fc67f..ef20cd942d86 100644 --- a/usr.sbin/mpsutil/mps_show.c +++ b/usr.sbin/mpsutil/mps_show.c @@ -577,9 +577,12 @@ show_devices(int ac, char **av) type = get_device_type(le32toh(device->DeviceInfo)); - if (device->PhyNum < nphys) { - phydata = &sas0->PhyData[device->PhyNum]; - speed = get_device_speed(phydata->NegotiatedLinkRate); + if (device->DeviceInfo & 0x800) { /* Direct Attached */ + if (device->PhyNum < nphys) { + phydata = &sas0->PhyData[device->PhyNum]; + speed = get_device_speed(phydata->NegotiatedLinkRate); + } else + speed = ""; } else if (device->ParentDevHandle > 0) { exp1 = mps_read_extended_config_page(fd, MPI2_CONFIG_EXTPAGETYPE_SAS_EXPANDER, @@ -597,13 +600,13 @@ show_devices(int ac, char **av) free(device); return (error); } - speed = " "; + speed = ""; } else { speed = get_device_speed(exp1->NegotiatedLinkRate); free(exp1); } } else - speed = " "; + speed = ""; if (device->EnclosureHandle != 0) { snprintf(enchandle, sizeof(enchandle), "%04x", le16toh(device->EnclosureHandle)); |