summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorRob Johnston <rob.johnston@joyent.com>2018-08-21 23:36:28 +0000
committerDan McDonald <danmcd@joyent.com>2019-01-17 21:15:10 -0500
commitdb8547fe5b268155b75e2cbd383dc4b652faa3b9 (patch)
treef9d4127c2caa6fec808a5855a945d6f720bb1f86 /usr/src
parentf91fcf59ac2fd04f1816f3dcbc69a46d44276a65 (diff)
downloadillumos-joyent-db8547fe5b268155b75e2cbd383dc4b652faa3b9.tar.gz
10187 ses enumerator blows chunks on US60+8
Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Reviewed by: Andy Stormont <astormont@racktopsystems.com> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/fm/topo/modules/common/disk/disk_common.c2
-rw-r--r--usr/src/lib/fm/topo/modules/common/ses/ses.c4
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 3eebb3ee20..e126a190e0 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 9a183c9845..570bc8eb53 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);