Historically, Linux has assumed a single PCI host bridge, with that bridgeclaiming all the address space left after RAM and legacy devices are taken out.

If the system contains multiple host bridges, we can no longer operate underthat assumption. We have to know what parts of the address space are claimedby each bridge so that when we assign resources to a PCI device, we take themfrom a range claimed by the upstream host bridge.

On x86 and ia64, we use ACPI to enumerate all the PCI host bridges in thesystem, and part of the host bridge description is the "_CRS" (current resourcesettings" property, which lists the address space used by the bridge. On x86,we currently ignore most of the _CRS information. This patch series changesthis, so we will use _CRS to learn about the host bridge windows.

Since most x86 machines with multiple host bridges are relatively new, thisseries only turns this on for machines with BIOS dates of 2008 or newer.

Changes from v2 to v3: - Fix alpha, powerpc, and mn10300 references to pci_bus resource table - Turn on "pci=use_crs" for 2008 and newer, not 2010 and newer - Remove Toshiba A355 quirk (BIOS date is 2009, so automatically included) - Remove IBM x3850 and x3950 quirks (BIOS dates in 2008, so automatically included) - Leave IBM x3800 quirk (pre-2008 BIOS) - Use "bool" for pci_use_crs (new to me, but I see akpm suggesting it) - Reorder so the important patches are first