diff options
author | Rob Johnston <rob.johnston@joyent.com> | 2018-08-21 23:36:28 +0000 |
---|---|---|
committer | Rob Johnston <rob.johnston@joyent.com> | 2018-08-22 19:21:02 +0000 |
commit | 14623ce3614a9ee961adb4294066fe377022d419 (patch) | |
tree | ff981dfb32917bb0a1fdc73efb6ade266545fb08 | |
parent | 88787a9cd548438c7b4d63636df84c9c967cf9f2 (diff) | |
download | illumos-joyent-14623ce3614a9ee961adb4294066fe377022d419.tar.gz |
OS-7134 ses enumerator blows chunks on US60+8
Reviewed by: Robert Mustacchi <rm@joyent.com>
Approved by: Jason King <jason.king@joyent.com>
-rw-r--r-- | usr/src/lib/fm/topo/modules/common/disk/disk_common.c | 2 | ||||
-rw-r--r-- | usr/src/lib/fm/topo/modules/common/ses/ses.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/usr/src/lib/fm/topo/modules/common/disk/disk_common.c b/usr/src/lib/fm/topo/modules/common/disk/disk_common.c index 5a7a5b5467..9110e3bc62 100644 --- a/usr/src/lib/fm/topo/modules/common/disk/disk_common.c +++ b/usr/src/lib/fm/topo/modules/common/disk/disk_common.c @@ -550,7 +550,7 @@ disk_tnode_create(topo_mod_t *mod, tnode_t *parent, return (-1); } - if (dnode->ddn_devid != NULL && + if (dnode != NULL && dnode->ddn_devid != NULL && disk_add_temp_sensor(mod, dtn, dnode->ddn_devid) != 0) { topo_mod_dprintf(mod, "disk_tnode_create: failed to create " "temperature sensor node on bay=%d/disk=0", diff --git a/usr/src/lib/fm/topo/modules/common/ses/ses.c b/usr/src/lib/fm/topo/modules/common/ses/ses.c index 2f85476cb8..7fd6d03cd1 100644 --- a/usr/src/lib/fm/topo/modules/common/ses/ses.c +++ b/usr/src/lib/fm/topo/modules/common/ses/ses.c @@ -1207,6 +1207,9 @@ ses_create_disk(ses_enum_data_t *sdp, tnode_t *pnode, nvlist_t *props) /* * Skip devices that are not in a present (and possibly damaged) state. + * Also, skip devices that this expander is either not fully wired to, + * or are hidden due to SAS zoning, as indicated by the + * SES_ESC_NO_ACCESS state. */ if (nvlist_lookup_uint64(props, SES_PROP_STATUS_CODE, &status) != 0) return (0); @@ -1216,7 +1219,6 @@ ses_create_disk(ses_enum_data_t *sdp, tnode_t *pnode, nvlist_t *props) status != SES_ESC_CRITICAL && status != SES_ESC_NONCRITICAL && status != SES_ESC_UNRECOVERABLE && - status != SES_ESC_NO_ACCESS && status != SES_ESC_UNKNOWN) return (0); |