linux/arch/x86/pci
Alexey Neyman 3ad674d6c6 x86/PCI: Coalesce multiple overlapping host bridge windows
Previously we coalesced windows by expanding the first overlapping one and
making the second invalid.  But we never look at the expanded first window
again, so we fail to notice other windows that overlap it.  For example, we
coalesced these:

  [io  0x0000-0x03af] // #0
  [io  0x03e0-0x0cf7] // #1
  [io  0x0000-0xdfff] // #2

into these, which still overlap:

  [io  0x0000-0xdfff] // #0
  [io  0x03e0-0x0cf7] // #1

The fix is to expand the *second* overlapping resource and ignore the
first, so we get this instead with no overlaps:

  [io  0x0000-0xdfff] // #2

[bhelgaas: changelog]
Reference: https://bugzilla.kernel.org/show_bug.cgi?id=62511
Signed-off-by: Alexey Neyman <stilor@att.net>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2013-10-10 07:11:59 -06:00
..
acpi.c x86/PCI: Coalesce multiple overlapping host bridge windows 2013-10-10 07:11:59 -06:00
amd_bus.c x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
broadcom_bus.c x86/PCI: dynamically allocate pci_root_info for native host bridge drivers 2012-04-30 14:52:43 -06:00
bus_numa.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
bus_numa.h x86/PCI: put busn resource in pci_root_info for native host bridge drivers 2012-06-13 15:42:24 -06:00
ce4100.c x86/ce4100: Fix PCI configuration register access for devices without interrupts 2012-10-30 10:16:47 +01:00
common.c x86/PCI: Map PCI setup data with ioremap() so it can be in highmem 2013-06-05 10:50:04 -06:00
direct.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
early.c x86/PCI: remove early PCI pr_debug statements 2009-11-24 15:25:19 -08:00
fixup.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
i386.c x86 / PCI: prevent re-allocation of already existing bridge and ROM resources 2013-07-23 03:55:56 +02:00
init.c x86, olpc: Use pci subarch init for OLPC 2010-02-25 19:26:23 -08:00
irq.c x86/PCI: irq and pci_ids patch for Intel Panther Point DeviceIDs 2011-05-10 15:43:36 -07:00
legacy.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
Makefile x86/PCI: Add NumaChip remote PCI support 2012-12-07 14:24:32 -07:00
mmconfig_32.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mmconfig_64.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mmconfig-shared.c x86/PCI: MMCONFIG: Check earlier for MMCONFIG region at address zero 2013-07-26 11:21:24 -06:00
mrst.c x86/pci/mrst: Cleanup checkpatch.pl warnings 2013-07-25 12:18:41 -06:00
numachip.c x86/PCI: Add NumaChip remote PCI support 2012-12-07 14:24:32 -07:00
numaq_32.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
olpc.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
pcbios.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
sta2x11-fixup.c x86, platform: Initial support for sta2x11 I/O hub 2012-04-12 11:10:30 -07:00
visws.c PCI: Provide a default pcibios_update_irq() 2012-09-18 17:28:21 -06:00
xen.c xen/pci: Used cached MSI-X capability offset 2013-05-10 09:10:38 -04:00