summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/lib/fm/topo/modules/common/fac_prov_ipmi/fac_prov_ipmi.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/lib/fm/topo/modules/common/fac_prov_ipmi/fac_prov_ipmi.c b/usr/src/lib/fm/topo/modules/common/fac_prov_ipmi/fac_prov_ipmi.c
index b3a81fdb51..55387afe12 100644
--- a/usr/src/lib/fm/topo/modules/common/fac_prov_ipmi/fac_prov_ipmi.c
+++ b/usr/src/lib/fm/topo/modules/common/fac_prov_ipmi/fac_prov_ipmi.c
@@ -24,7 +24,7 @@
*/
/*
* Copyright 2019 Joyent, Inc.
- * Copyright 2019 by Western Digital Corporation
+ * Copyright 2022 Tintri by DDN, Inc. All rights reserved.
*/
#include <unistd.h>
#include <stdio.h>
@@ -1606,6 +1606,15 @@ make_sensor_node(topo_mod_t *mod, tnode_t *pnode, struct sensor_data *sd,
if (ipmi_get_sensor_thresholds(hdl, &thresh,
sd->sd_fs_sdr->is_fs_number) != 0) {
+ /*
+ * Some sensors report supporting reading thresholds, but Get
+ * Sensor Thresholds returns Invalid Command. Do not consider
+ * this an error so we could continue enumerating sensors for
+ * the entity.
+ */
+ if (ipmi_errno(hdl) == EIPMI_INVALID_COMMAND)
+ return (0);
+
topo_mod_dprintf(mod, "Failed to get sensor thresholds for "
"node %s (%s)\n", topo_node_name(fnode), ipmi_errmsg(hdl));
return (topo_mod_seterrno(mod, EMOD_PARTIAL_ENUM));