linux/arch/x86/pci
Yinghai Lu 75e613cdc7 x86/pci: fix mmconfig detection with 32bit near 4g
Pascal reported and bisected a commit:
|	x86/PCI: don't call e820_all_mapped with -1 in the mmconfig case

which broke one system system.

ACPI: Using IOAPIC for interrupt routing
PCI: MCFG configuration 0: base f0000000 segment 0 buses 0 - 255
PCI: MCFG area at f0000000 reserved in ACPI motherboard resources
PCI: Using MMCONFIG for extended config space

it didn't have
PCI: updated MCFG configuration 0: base f0000000 segment 0 buses 0 - 63
anymore, and try to use 0xf000000 - 0xffffffff for mmconfig

For 32bit, mcfg_res->end could be 32bit only (if 64 resources aren't used)
So use end - 1 to pass the value in mcfg->end to avoid overflow.

We don't need to worry about the e820 path, they are always 64 bit.

Reported-by: Pascal Terjan <pterjan@mandriva.com>
Bisected-by: Pascal Terjan <pterjan@mandriva.com>
Tested-by: Pascal Terjan <pterjan@mandriva.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: stable@kernel.org
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-06-04 11:31:13 +01:00
..
acpi.c x86/PCI: use dev_printk for PCI bus locality messages 2009-01-07 11:13:19 -08:00
amd_bus.c x86/PCI: don't bother with root quirks if _CRS is used 2009-04-22 15:06:29 -07:00
common.c x86/PCI: set_pci_bus_resources_arch_default cleanups 2009-04-22 14:47:46 -07:00
direct.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
early.c PCI/x86: format early dump like other PCI output 2009-03-19 19:29:18 -07:00
fixup.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-04-01 09:47:12 -07:00
i386.c x86/PCI: set_pci_bus_resources_arch_default cleanups 2009-04-22 14:47:46 -07:00
init.c PCI: avoid early PCI mmconfig init if pci=noearly is given in cmdline 2009-01-07 11:12:46 -08:00
irq.c PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs 2009-01-27 09:46:08 -08:00
legacy.c x86/PCI: make pci=lastbus=255 work when acpi is on 2009-03-26 16:07:49 -07:00
Makefile x86/pci: renamed: numa.c -> numaq_32.c 2008-07-11 21:22:58 +02:00
mmconfig-shared.c x86/pci: fix mmconfig detection with 32bit near 4g 2009-06-04 11:31:13 +01:00
mmconfig_32.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
mmconfig_64.c x86/PCI: host mmconfig detect clean up 2009-03-20 11:40:22 -07:00
numaq_32.c x86, apic: remove genapic.h 2009-02-17 17:52:44 +01:00
olpc.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
pcbios.c x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
visws.c PCI: x86/visws: use generic INTx swizzle from PCI core 2009-01-07 11:13:16 -08:00