summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/uts/intel/io/ipmi/ipmi_main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/usr/src/uts/intel/io/ipmi/ipmi_main.c b/usr/src/uts/intel/io/ipmi/ipmi_main.c
index 93c831a941..de72ff5053 100644
--- a/usr/src/uts/intel/io/ipmi/ipmi_main.c
+++ b/usr/src/uts/intel/io/ipmi/ipmi_main.c
@@ -82,6 +82,16 @@ get_smbios_ipmi_info()
cmn_err(CE_CONT, "!SMBIOS type 0x%x, addr 0x%llx", ipmi.smbip_type,
(long long unsigned int)(ipmi.smbip_addr));
+ /*
+ * Some systems have a bios that will report an IPMI device even when
+ * it is not installed. In this case we see 0x0 as the base address.
+ * If we see this address, assume the device is not really present.
+ */
+ if (ipmi.smbip_addr == NULL) {
+ cmn_err(CE_WARN, "!SMBIOS: Invalid base address");
+ return;
+ }
+
sc->ipmi_io_type = ipmi.smbip_type;
switch (ipmi.smbip_type) {
case SMB_IPMI_T_KCS: