Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jul 2011 20:43:43 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r224254 - head/sys/dev/acpica
Message-ID:  <201107212043.p6LKhh14085007@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107212043.p6LKhh14085007>