kernel-ark/arch/x86/pci
Yinghai Lu a2bd7274b4 x86: fix HPET regression in 2.6.26 versus 2.6.25, check hpet against BAR, v3
David Witbrodt tracked down (and bisected) a hpet bootup hang on his
system to the following problem: a BIOS bug made the hpet device
visible as a generic PCI device. If e820 reserved entries happen to
be registered first in the resource tree [which v2.6.26 started doing],
then the PCI code will reallocate that device's BAR to some other
address - breaking timer IRQs and hanging the system.

( Normally hpet devices are hidden by the BIOS from the OS's PCI
  discovery via chipset magic. Sometimes the hpet is not a PCI device
  at all. )

Solve this fundamental fragility by making non-PCI platform drivers
insert resources into the resource tree even if it overlaps the e820
reserved entry, to keep the resource manager from updating the BAR.

Also do these checks for the ioapic and mmconfig addresses, and emit
a warning if this happens.

Bisected-by: David Witbrodt <dawitbro@sbcglobal.net>
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Tested-by: David Witbrodt <dawitbro@sbcglobal.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-08-25 10:02:03 +02:00
..
acpi.c Revert "x86/PCI: ACPI based PCI gap calculation" 2008-07-16 16:21:47 -07:00
amd_bus.c x86: fix: make PCI ECS for AMD CPUs hotplug capable 2008-08-23 17:39:31 +02:00
common.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2008-07-16 17:25:46 -07:00
direct.c x86: Move PCI IO ECS code to x86/pci 2008-07-08 07:47:39 +02:00
early.c x86: convert Dprintk to pr_debug 2008-07-21 21:35:38 +02:00
fixup.c x86/PCI: use dev_printk when possible 2008-07-28 15:32:26 -07:00
i386.c x86: fix HPET regression in 2.6.26 versus 2.6.25, check hpet against BAR, v3 2008-08-25 10:02:03 +02:00
init.c x86/pci: removing subsys_initcall ordering dependencies 2008-07-09 11:45:03 +02:00
irq.c x86/PCI: use dev_printk when possible 2008-07-28 15:32:26 -07:00
legacy.c x86/pci: Changing subsystem init for visws 2008-07-11 21:22:59 +02:00
Makefile x86/pci: renamed: numa.c -> numaq_32.c 2008-07-11 21:22:58 +02:00
mmconfig_32.c
mmconfig_64.c
mmconfig-shared.c x86: silence mmconfig printk 2008-08-15 13:52:39 +02:00
numaq_32.c x86/PCI: use dev_printk when possible 2008-07-28 15:32:26 -07:00
olpc.c PCI/x86: fix up PCI stuff so that PCI_GOANY supports OLPC 2008-06-05 14:29:25 -07:00
pcbios.c
pci.h Merge branches 'x86/urgent', 'x86/amd-iommu', 'x86/apic', 'x86/cleanups', 'x86/core', 'x86/cpu', 'x86/fixmap', 'x86/gart', 'x86/kprobes', 'x86/memtest', 'x86/modules', 'x86/nmi', 'x86/pat', 'x86/reboot', 'x86/setup', 'x86/step', 'x86/unify-pci', 'x86/uv', 'x86/xen' and 'xen-64bit' into x86/for-linus 2008-07-21 16:37:17 +02:00
visws.c x86/pci: Changing subsystem init for visws 2008-07-11 21:22:59 +02:00