linux/arch
Bjorn Helgaas d558b483d5 x86/PCI: truncate _CRS windows with _LEN > _MAX - _MIN + 1
Yanko's GA-MA78GM-S2H (BIOS F11) reports the following resource in a PCI
host bridge _CRS:

    [07] 32-Bit DWORD Address Space Resource
         Min Relocatability : MinFixed
         Max Relocatability : MaxFixed
            Address Minimum : CFF00000  (_MIN)
            Address Maximum : FEBFFFFF  (_MAX)
             Address Length : 3EE10000  (_LEN)

This is invalid per spec (ACPI 4.0, 6.4.3.5) because it's a fixed size,
fixed location descriptor, but _LEN != _MAX - _MIN + 1.

Based on https://bugzilla.kernel.org/show_bug.cgi?id=15480#c15, I think
Windows handles this by truncating the window so it fits between _MIN and
_MAX.  I also verified this by modifying the SeaBIOS DSDT and booting
Windows 2008 R2 with qemu.

This patch makes Linux truncate the window, too, which fixes:
    http://bugzilla.kernel.org/show_bug.cgi?id=15480

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Tested-by: Yanko Kaneti <yaneti@declera.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-25 10:14:13 -07:00
..
alpha dma-mapping: alpha: use include/linux/pci-dma-compat.h 2010-03-12 15:52:42 -08:00
arm Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2010-03-18 16:59:30 -07:00
avr32 avr32: use generic ptrace_resume code 2010-03-12 15:52:38 -08:00
blackfin Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin 2010-03-18 17:02:35 -07:00
cris Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-03-12 16:04:50 -08:00
frv frv/PCI: remove redundant warnings 2010-03-25 08:51:40 -07:00
h8300 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-03-12 16:04:50 -08:00
ia64 ACPI: processor: driver doesn't need to evaluate _PDC 2010-03-14 21:17:22 -04:00
m32r m32r: use generic ptrace_resume code 2010-03-12 15:52:39 -08:00
m68k Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-03-12 16:04:50 -08:00
m68knommu m68knommu: use generic ptrace_resume code 2010-03-12 15:52:38 -08:00
microblaze Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2010-03-18 16:57:24 -07:00
mips init dynamic bin_attribute structures 2010-03-14 20:28:39 -07:00
mn10300 dma-mapping: mn10300: remove the obsolete and unnecessary DMA API comments 2010-03-12 15:52:42 -08:00
parisc pci-dma: add linux/pci-dma.h to linux/pci.h 2010-03-12 15:52:42 -08:00
powerpc Merge branch 'merge' of git://git.secretlab.ca/git/linux-2.6 2010-03-18 17:01:19 -07:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-03-12 16:04:50 -08:00
score ptrace: move user_enable_single_step & co prototypes to linux/ptrace.h 2010-03-12 15:52:38 -08:00
sh Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-18 16:52:46 -07:00
sparc Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-13 14:39:42 -08:00
um um: remove dma_sync_single_range 2010-03-12 15:52:40 -08:00
x86 x86/PCI: truncate _CRS windows with _LEN > _MAX - _MIN + 1 2010-03-25 10:14:13 -07:00
xtensa Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-03-12 16:04:50 -08:00
.gitignore
Kconfig Merge branch 'perf-probes-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-05 10:50:22 -08:00