--- a/sys/dev/misc/ipmi/ipmi_acpi.c +++ b/sys/dev/misc/ipmi/ipmi_acpi.c @@ -76,9 +76,8 @@ { ACPI_HANDLE devh; const char *mode; - struct ipmi_get_info info; struct ipmi_softc *sc = device_get_softc(dev); - int count, error, flags, i, type; + int count, error, i, type; int interface_type = 0, interface_version = 0; error = 0; @@ -102,11 +101,8 @@ device_printf(dev, "BT interface not supported\n"); return (ENXIO); case SSIF_MODE: - if (ACPI_FAILURE(acpi_GetInteger(devh, "_ADR", &flags))) - return (ENXIO); - info.address = flags; device_printf(dev, "SSIF interface not supported on ACPI\n"); - return (0); + return (ENXIO); default: return (ENXIO); } --- a/sys/dev/misc/ipmi/ipmi.c +++ b/sys/dev/misc/ipmi/ipmi.c @@ -587,6 +587,11 @@ int error; IPMI_LOCK(sc); + if (sc->ipmi_enqueue_request == NULL) { + /* Interface frontend never attached (dead softc). */ + IPMI_UNLOCK(sc); + return (ENXIO); + } error = sc->ipmi_enqueue_request(sc, req); if (error == 0) error = lksleep(req, &sc->ipmi_lock, 0, "ipmireq", timo);