summaryrefslogtreecommitdiffstats
path: root/sys/dev/ipmi/ipmi_isa.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ipmi/ipmi_isa.c')
-rw-r--r--sys/dev/ipmi/ipmi_isa.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/sys/dev/ipmi/ipmi_isa.c b/sys/dev/ipmi/ipmi_isa.c
index 9d3f9f3..31a88f1 100644
--- a/sys/dev/ipmi/ipmi_isa.c
+++ b/sys/dev/ipmi/ipmi_isa.c
@@ -56,8 +56,15 @@ ipmi_isa_identify(driver_t *driver, device_t parent)
struct ipmi_get_info info;
uint32_t devid;
- if (ipmi_smbios_identify(&info) && info.iface_type != SSIF_MODE &&
- device_find_child(parent, "ipmi", -1) == NULL) {
+ /*
+ * Give other drivers precedence. Unfortunately, this doesn't
+ * work if we have an SMBIOS table that duplicates a PCI device
+ * that's later on the bus than the PCI-ISA bridge.
+ */
+ if (ipmi_attached)
+ return;
+
+ if (ipmi_smbios_identify(&info) && info.iface_type != SSIF_MODE) {
/*
* XXX: Hack alert. On some broken systems, the IPMI
* interface is described via SMBIOS, but the actual
@@ -175,14 +182,6 @@ ipmi_isa_attach(device_t dev)
!ipmi_hint_identify(dev, &info))
return (ENXIO);
- /*
- * Give other drivers precedence. Unfortunately, this doesn't
- * work if we have an SMBIOS table that duplicates a PCI device
- * that's later on the bus than the PCI-ISA bridge.
- */
- if (ipmi_attached)
- return (EBUSY);
-
switch (info.iface_type) {
case KCS_MODE:
count = 2;
OpenPOWER on IntegriCloud