--- //depot/vendor/freebsd/src/sys/dev/acpica/acpi_pcib.c +++ //depot/projects/pci/sys/dev/acpica/acpi_pcib.c @@ -135,15 +135,6 @@ ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); /* - * Don't attach if we're not really there. - * - * XXX: This isn't entirely correct since we may be a PCI bus - * on a hot-plug docking station, etc. - */ - if (!acpi_DeviceIsPresent(dev)) - return_VALUE(ENXIO); - - /* * Get the PCI interrupt routing table for this bus. If we can't * get it, this is not an error but may reduce functionality. There * are several valid bridges in the field that do not have a _PRT, so --- //depot/vendor/freebsd/src/sys/dev/acpica/acpi_pcib_acpi.c +++ //depot/projects/pci/sys/dev/acpica/acpi_pcib_acpi.c @@ -287,6 +292,12 @@ sc->ap_handle = acpi_get_handle(dev); /* + * Don't attach if we're not really there. + */ + if (!acpi_DeviceIsPresent(dev)) + return (ENXIO); + + /* * Get our segment number by evaluating _SEG. * It's OK for this to not exist. */ @@ -353,7 +364,7 @@ if (status != AE_NOT_FOUND) { device_printf(dev, "could not evaluate _BBN - %s\n", AcpiFormatException(status)); - return_VALUE (ENXIO); + return (ENXIO); } else { /* If it's not found, assume 0. */ sc->ap_bus = 0;