So make pci root resource from _CRS honor the range We reserve in e820 below 1M then will not assign them to unsigned pci BAR -v2: let pci_bus_alloc_resource() honor IORESOURCE_BUSY driver can not use those range, so skip it Tested-by: Andy Isaacson <adi@xxxxxxxxxxxxx> Cc: Bjorn Helgaas <bjorn.helgaas@xxxxxx> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- arch/x86/pci/acpi.c | 4 ++++ drivers/pci/bus.c | 4 ++++ 2 files changed, 8 insertions(+) Index: linux-2.6/arch/x86/pci/acpi.c =================================================================== --- linux-2.6.orig/arch/x86/pci/acpi.c +++ linux-2.6/arch/x86/pci/acpi.c @@ -175,6 +175,10 @@ setup_resource(struct acpi_resource *acp "conflicts with %s %pR\n", res, conflict->name, conflict); } else { + /* In case it falls in big reserved region */ + if (res->parent->flags & IORESOURCE_BUSY) + res->flags |= IORESOURCE_BUSY; + pci_bus_add_resource(info->bus, res, 0); info->res_num++; if (addr.translation_offset) Index: linux-2.6/drivers/pci/bus.c =================================================================== --- linux-2.6.orig/drivers/pci/bus.c +++ linux-2.6/drivers/pci/bus.c @@ -103,6 +103,10 @@ pci_bus_alloc_resource(struct pci_bus *b if (!r) continue; + /* Driver can not reserve it later, so don't use it */ + if (r->flags & IORESOURCE_BUSY) + continue; + /* type_mask must match */ if ((res->flags ^ r->flags) & type_mask) continue; -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html