From patchwork Wed Dec 8 21:36:11 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Helgaas X-Patchwork-Id: 392262 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id oB8Lc8lZ022832 for ; Wed, 8 Dec 2010 21:38:09 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755449Ab0LHVgS (ORCPT ); Wed, 8 Dec 2010 16:36:18 -0500 Received: from g4t0016.houston.hp.com ([15.201.24.19]:23975 "EHLO g4t0016.houston.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755167Ab0LHVgP (ORCPT ); Wed, 8 Dec 2010 16:36:15 -0500 Received: from g4t0009.houston.hp.com (g4t0009.houston.hp.com [16.234.32.26]) by g4t0016.houston.hp.com (Postfix) with ESMTP id AD1F914013; Wed, 8 Dec 2010 21:36:12 +0000 (UTC) Received: from ldl (ldl.usa.hp.com [16.125.112.222]) by g4t0009.houston.hp.com (Postfix) with ESMTP id 2B455C194; Wed, 8 Dec 2010 21:36:12 +0000 (UTC) Received: from localhost (ldl.fc.hp.com [127.0.0.1]) by ldl (Postfix) with ESMTP id 1078DCF002A; Wed, 8 Dec 2010 14:36:12 -0700 (MST) Received: from ldl ([127.0.0.1]) by localhost (ldl.fc.hp.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f0BLoOFrvQQr; Wed, 8 Dec 2010 14:36:11 -0700 (MST) Received: from eh.fc.hp.com (bob.lnx.usa.hp.com [16.125.112.218]) by ldl (Postfix) with ESMTP id EB872CF0029; Wed, 8 Dec 2010 14:36:11 -0700 (MST) Received: from bob.kio (localhost [127.0.0.1]) by eh.fc.hp.com (Postfix) with ESMTP id BAC1A26200; Wed, 8 Dec 2010 14:36:11 -0700 (MST) Subject: [PATCH 2/5] x86: avoid BIOS area when allocating address space To: Jesse Barnes , Len Brown From: Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, "H. Peter Anvin" , Thomas Gleixner , Linus Torvalds , Ingo Molnar , Adam Belay Date: Wed, 08 Dec 2010 14:36:11 -0700 Message-ID: <20101208213611.13026.40888.stgit@bob.kio> In-Reply-To: <20101208213606.13026.47657.stgit@bob.kio> References: <20101208213606.13026.47657.stgit@bob.kio> User-Agent: StGit/0.15 MIME-Version: 1.0 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Wed, 08 Dec 2010 21:38:09 +0000 (UTC) diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 9e13763..1e99475 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile @@ -45,6 +45,7 @@ obj-y += pci-dma.o quirks.o i8237.o topology.o kdebugfs.o obj-y += alternative.o i8253.o pci-nommu.o hw_breakpoint.o obj-y += tsc.o io_delay.o rtc.o obj-y += pci-iommu_table.o +obj-y += resource.o obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o obj-y += process.o diff --git a/arch/x86/kernel/resource.c b/arch/x86/kernel/resource.c new file mode 100644 index 0000000..5dd6473 --- /dev/null +++ b/arch/x86/kernel/resource.c @@ -0,0 +1,14 @@ +#include +#include + +void arch_remove_reservations(struct resource *avail) +{ + /* + * Trim out the area reserved for BIOS (low 1MB). We could also remove + * E820 "reserved" areas here. + */ + if (avail->flags & IORESOURCE_MEM) { + if (avail->start < BIOS_END) + avail->start = BIOS_END; + } +} diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c index c4bb261..b261011 100644 --- a/arch/x86/pci/i386.c +++ b/arch/x86/pci/i386.c @@ -77,9 +77,6 @@ pcibios_align_resource(void *data, const struct resource *res, */ if (!skip_isa_ioresource_align(dev)) start &= ~0x300; - } else if (res->flags & IORESOURCE_MEM) { - if (start < BIOS_END) - start = res->end; /* fail; no space */ } return start; }