x86/PCI: ignore Consumer/Producer bit in ACPI window descriptions
PATCH 1/1 x86/PCI: ignore Consumer/Producer bit in ACPI window descriptions
ACPI Address Space Descriptors (used in _CRS) have a Consumer/Producer bit that is supposed to distinguish regions that are consumed directly by a device from those that are forwarded ("produced") by a bridge. But BIOSes have apparently not used this consistently, and Windows seems to ignore it, so I think Linux should ignore it as well.
I can't point to any of these supposed broken BIOSes, but since we now rely on _CRS by default, I think it's safer to ignore this bit from the start.
Here are details of my experiments with how Windows handles it:
https://bugzilla.kernel.org/show_bug.cgi?id=15701
---
arch/x86/pci/acpi.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
arch/x86/pci/acpi.c +1 -2
@@ -71,8 +71,7 @@ resource_to_addr(struct acpi_resource *resource,if (ACPI_SUCCESS (status) && (addr->resource_type ==ACPI_MEMORY_RANGE || addr->resource_type ==ACPI_IO_RANGE ) && - addr->address_length >0 && - addr->producer_consumer ==ACPI_PRODUCER ) { + addr->address_length >0 ) {return AE_OK ; }return AE_ERROR ;
Jesse Barnes
AppliedQuoted 11 lines · On Tue, 06 Apr 2010 13:24:08 -0600 Bjorn Helgaas <[email protected]> wrote:
ACPI Address Space Descriptors (used in
_CRS) have a Consumer/Producer bit that is supposed to distinguish regions that are consumed directly by a device from those that are forwarded ("produced") by a bridge. But BIOSes have apparently not used this consistently, and Windows seems to ignore it, so I think Linux should ignore it as well.I can't point to any of these supposed broken BIOSes, but since we now rely on
_CRSby default, I think it's safer to ignore this bit from the start.
Quoted 5 lines
Here are details of my experiments with how Windows handles it:
https://bugzilla.kernel.org/show_bug.cgi?id=15701Signed-off-by Bjorn Helgaas <[email protected]>---
Applied to my for-linus branch, thanks.
Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center