Ivan Kokshaysky wrote: > On Wed, Apr 22, 2009 at 07:10:29PM -0700, Yinghai Lu wrote: >> also on AMD system with two ht chain, or other system with pci=use_crs to get correct root default res, >> will get anonying >> >> PCI: allocations above 4G disabled >> >> even the system does support that. > > Yep, but it's easy to fix (patch applies on the top of the previous one). another case: one system with 8g ram install, one device on bus 0 does get res assigned, but one res from it does support 64bit mmio. and at that case the assign_unassigned code still could assign 64 res to it. but kernel will still print out that warning. > >> also will have problem with some calling like request_resource(&iomem_resource, ....) > > I don't think so. All critical resources are inserted much earlier than > mem64 one, and request_resource(&iomem_resource, ...) at later stages > would most likely fail regardless of mem64 thing. > Or am I missing something? at least the one in mm/memory_hotplug.c /* add this memory to iomem resource */ static struct resource *register_memory_resource(u64 start, u64 size) { struct resource *res; res = kzalloc(sizeof(struct resource), GFP_KERNEL); BUG_ON(!res); res->name = "System RAM"; res->start = start; res->end = start + size - 1; res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; if (request_resource(&iomem_resource, res) < 0) { printk("System RAM resource %llx - %llx cannot be added\n", (unsigned long long)res->start, (unsigned long long)res->end); kfree(res); res = NULL; } return res; } > > Ivan. > > diff --git a/arch/x86/pci/dac_64bit.c b/arch/x86/pci/dac_64bit.c > index ee03c4a..35ffee3 100644 > --- a/arch/x86/pci/dac_64bit.c > +++ b/arch/x86/pci/dac_64bit.c > @@ -33,12 +33,16 @@ void pcibios_pci64_setup(void) > void pcibios_pci64_verify(void) > { > struct pci_bus *b; > + int disabled = 0; > > if (mem64.flags & IORESOURCE_MEM64) > return; /* presumably DAC works */ > list_for_each_entry(b, &pci_root_buses, node) { > - if (b->resource[2] == &mem64) > + if (b->resource[2] == &mem64) { > b->resource[2] = NULL; > + disabled = 1; > + } > } > - printk(KERN_INFO "PCI: allocations above 4G disabled\n"); > + if (disabled) > + printk(KERN_INFO "PCI: allocations above 4G disabled\n"); > } -- 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