linux/arch/x86/pci
Yinghai Lu e8ee6f0ae5 x86: work around io allocation overlap of HT links
normally BIOSes assign io/mmio range to different HT links without
overlapping, even same node same link should get non overlapping
entries.

but Rafael L. Wysocki's buggy BIOS creates a link with overlapping
entries for mmio and io:

  node 0 link 0: io port [1000, ffffff]
  node 0 link 0: mmio [e0000000, efffffff]
  node 0 link 0: mmio [a0000, bffff]
  node 0 link 0: mmio [80000000, ffffffff]

try to merge them and we will get:

  bus: [00, ff] on node 0 link 0
  bus: 00 index 0 io port: [0, ffff]
  bus: 00 index 1 mmio: [80000000, fcffffffff]
  bus: 00 index 2 mmio: [a0000, bffff]

so later we will reduce the chance to assign used resource to
unassigned device.

Reported-by: "Rafael J. Wysocki" <rjw@sisk.pl>
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Tested-by: "Rafael J. Wysocki" <rjw@sisk.pl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-04-26 23:41:04 +02:00
..
acpi.c x86: get mp_bus_to_node early 2008-04-26 23:41:04 +02:00
common.c x86: get mp_bus_to_node early 2008-04-26 23:41:04 +02:00
direct.c x86 pci: remove checking type for mmconfig probe 2008-04-26 23:41:04 +02:00
early.c i386: move pci 2007-10-11 11:16:36 +02:00
fixup.c x86_64: set cfg_size for AMD Family 10h in case MMCONFIG 2008-04-26 23:41:03 +02:00
i386.c PCI: x86: use generic pci_enable_resources() 2008-04-20 21:47:04 -07:00
init.c x86 pci: remove checking type for mmconfig probe 2008-04-26 23:41:04 +02:00
irq.c x86: get mp_bus_to_node early 2008-04-26 23:41:04 +02:00
k8-bus_64.c x86: work around io allocation overlap of HT links 2008-04-26 23:41:04 +02:00
legacy.c x86: get mp_bus_to_node early 2008-04-26 23:41:04 +02:00
Makefile x86_64: move pci 2007-10-11 11:17:12 +02:00
Makefile_32 x86: get mp_bus_to_node early 2008-04-26 23:41:04 +02:00
Makefile_64 x86: multi pci root bus with different io resource range, on 64-bit 2008-04-26 23:41:04 +02:00
mmconfig-shared.c x86 pci: remove checking type for mmconfig probe 2008-04-26 23:41:04 +02:00
mmconfig_32.c x86: clear pci_mmcfg_virt when mmcfg get rejected 2008-04-26 23:41:03 +02:00
mmconfig_64.c x86: clear pci_mmcfg_virt when mmcfg get rejected 2008-04-26 23:41:03 +02:00
mp_bus_to_node.c x86: get mp_bus_to_node early 2008-04-26 23:41:04 +02:00
numa.c x86: remove mpc_oem_bus_info() 2008-04-17 17:41:08 +02:00
pcbios.c PCI: remove initial bios sort of PCI devices on x86 2008-04-20 21:46:58 -07:00
pci.h x86: clear pci_mmcfg_virt when mmcfg get rejected 2008-04-26 23:41:03 +02:00
visws.c Change pci_raw_ops to pci_raw_read/write 2008-02-10 12:52:46 -08:00