diff options
author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2010-04-23 17:05:24 -0600 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-04-26 12:30:03 -0700 |
commit | 55051feb57eba600b366006757304a0af3ada2bd (patch) | |
tree | a32609fa40d0f7b03fa8042f0075e82bca4a3218 /arch/x86/pci | |
parent | b91ce4d14a21fc04d165be30319541e0f9204f15 (diff) | |
download | blackbird-op-linux-55051feb57eba600b366006757304a0af3ada2bd.tar.gz blackbird-op-linux-55051feb57eba600b366006757304a0af3ada2bd.zip |
x86/PCI: never allocate PCI MMIO resources below BIOS_END
When we move a PCI device or assign resources to a device not configured
by the BIOS, we want to avoid the BIOS region below 1MB. Note that if the
BIOS places devices below 1MB, we leave them there.
See https://bugzilla.kernel.org/show_bug.cgi?id=15744
and https://bugzilla.kernel.org/show_bug.cgi?id=15841
Tested-by: Andy Isaacson <adi@hexapodia.org>
Tested-by: Andy Bailey <bailey@akamai.com>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'arch/x86/pci')
-rw-r--r-- | arch/x86/pci/i386.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c index 46fd43f79103..97da2ba9344b 100644 --- a/arch/x86/pci/i386.c +++ b/arch/x86/pci/i386.c @@ -72,6 +72,9 @@ pcibios_align_resource(void *data, const struct resource *res, return start; if (start & 0x300) start = (start + 0x3ff) & ~0x3ff; + } else if (res->flags & IORESOURCE_MEM) { + if (start < BIOS_END) + start = BIOS_END; } return start; } |