kern/91594: [acpi] FreeBSD > 5.4 w/ACPI fails to detect Intel Pro/1000 MT 4-port NIC in PCI slot 3 of DL380 G4 [regression]
John Baldwin
jhb at FreeBSD.org
Tue Jul 2 19:50:01 UTC 2013
The following reply was made to PR kern/91594; it has been noted by GNATS.
From: John Baldwin <jhb at FreeBSD.org>
To: bug-followup at FreeBSD.org, bad at bsd.de
Cc:
Subject: Re: kern/91594: [acpi] FreeBSD > 5.4 w/ACPI fails to detect Intel
Pro/1000 MT 4-port NIC in PCI slot 3 of DL380 G4 [regression]
Date: Tue, 02 Jul 2013 12:49:13 -0700
This is a multi-part message in MIME format.
--------------040100040502060400080805
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Please try this change:
--
John Baldwin
--------------040100040502060400080805
Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
name="pcib_acpi_present.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="pcib_acpi_present.patch"
--- //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;
--------------040100040502060400080805--
More information about the freebsd-acpi
mailing list