aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2022-05-09 21:57:29 +0000
committerAlexander Motin <mav@FreeBSD.org>2022-05-16 13:53:02 +0000
commit718cb64a1f7bd375831aa9add80c378ddac63d14 (patch)
treecadf5c4a56b6457636fd8b60e475ed3709ac1b3a
parent9d0620722654cf65ce9fa6f1938b213f7130a578 (diff)
downloadsrc-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.c13
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));