On Mon, 2010-04-12 at 15:33 -0700, Yinghai wrote: > 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 This -v2 text doesn't belong in the changelog. If you need it, it should be in a cover message so it doesn't clutter the permanent git logs. > 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; I think this makes sense, but I think it should be in two separate patches. The first would be the pci_bus_alloc_resource() change, which is of interest to all architectures, with a changelog like this: PCI: don't allocate from a BUSY bus resource Drivers typically use pci_request_regions() to reserve the resources they use, but that fails if the resource is already busy. Therefore, we should ignore busy resources when we're assigning resources to a device. and the second would be: x86/PCI: host bridge windows inherit BUSY flag from parent If a host bridge window falls inside a region the architecture has marked busy, the window should inherit the busy flag so we don't try to assign that region to a device. Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> -- 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