svn commit: r224254 - head/sys/dev/acpica

John Baldwin jhb at FreeBSD.org
Thu Jul 21 20:43:43 UTC 2011


Author: jhb
Date: Thu Jul 21 20:43:43 2011
New Revision: 224254
URL: http://svn.freebsd.org/changeset/base/224254

Log:
  Allow non-fixed endpoints for a producer address range if the length of
  the resource covers the entire range.  Some BIOSes appear to mark
  endpoints as non-fixed incorrectly (non-fixed endpoints are supposed to
  be used in _PRS when OSPM is allowed to allocate a certain chunk of
  address space within a larger range, I don't believe it is supposed to be
  used for _CRS).
  
  Approved by:	re (kib)

Modified:
  head/sys/dev/acpica/acpi_pcib_acpi.c

Modified: head/sys/dev/acpica/acpi_pcib_acpi.c
==============================================================================
--- head/sys/dev/acpica/acpi_pcib_acpi.c	Thu Jul 21 20:06:14 2011	(r224253)
+++ head/sys/dev/acpica/acpi_pcib_acpi.c	Thu Jul 21 20:43:43 2011	(r224254)
@@ -207,9 +207,11 @@ acpi_pcib_producer_handler(ACPI_RESOURCE
 			length = res->Data.ExtAddress64.AddressLength;
 			break;
 		}
-		if (length == 0 ||
-		    res->Data.Address.MinAddressFixed != ACPI_ADDRESS_FIXED ||
-		    res->Data.Address.MaxAddressFixed != ACPI_ADDRESS_FIXED)
+		if (length == 0)
+			break;
+		if (min + length - 1 != max &&
+		    (res->Data.Address.MinAddressFixed != ACPI_ADDRESS_FIXED ||
+		    res->Data.Address.MaxAddressFixed != ACPI_ADDRESS_FIXED))
 			break;
 		flags = 0;
 		switch (res->Data.Address.ResourceType) {


More information about the svn-src-all mailing list