PCI/ACPI: Fix bus range comparison in pci_mcfg_lookup()
authorZhou Wang <wangzhou1@hisilicon.com>
Wed, 4 Jan 2017 07:00:06 +0000 (15:00 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 12 Jan 2017 20:32:09 +0000 (14:32 -0600)
commit53762ba810398c11efaf65f9a45d992125e86dcf
treee6f01d279441ef4a9a6c9db11c5f0403b7682026
parent977509f7c5c6fb992ffcdf4291051af343b91645
PCI/ACPI: Fix bus range comparison in pci_mcfg_lookup()

The configuration data provided by an MCFG entry, i.e., PCI segment and bus
range, may span multiple host bridges.

pci_mcfg_lookup() previously required an exact match of the host bridge
starting bus and the MCFG starting bus, which made the following
configuration fail:

  MCFG region:
    segment: 0
    bus range: 0x00-0xff

  host bridge
    segment: 0
    bus range: 0x20-0x4f

Relax the bus range check in pci_mcfg_lookup() so we can use any MCFG entry
that contains the required bus range, as we do in pci_mmconfig_lookup().

[bhelgaas: changelog]
Signed-off-by: Zhou Wang <wangzhou1@hisilicon.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Tomasz Nowicki <tn@semihalf.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/acpi/pci_mcfg.c