From patchwork Fri Feb 19 14:15:40 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Chamberlain X-Patchwork-Id: 8361651 Return-Path: X-Original-To: patchwork-xen-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id B08BE9F372 for ; Fri, 19 Feb 2016 14:18:30 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7D5D720461 for ; Fri, 19 Feb 2016 14:18:29 +0000 (UTC) Received: from lists.xen.org (lists.xenproject.org [50.57.142.19]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 657C12045B for ; Fri, 19 Feb 2016 14:18:25 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xen.org) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1aWlqi-0005pW-J0; Fri, 19 Feb 2016 14:16:00 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1aWlqh-0005p6-OT for xen-devel@lists.xensource.com; Fri, 19 Feb 2016 14:15:59 +0000 Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id 8E/74-02992-E9327C65; Fri, 19 Feb 2016 14:15:58 +0000 X-Env-Sender: mcgrof@kernel.org X-Msg-Ref: server-16.tower-206.messagelabs.com!1455891356!9164554!1 X-Originating-IP: [198.145.29.136] X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG X-StarScan-Received: X-StarScan-Version: 7.35.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 676 invoked from network); 19 Feb 2016 14:15:58 -0000 Received: from mail.kernel.org (HELO mail.kernel.org) (198.145.29.136) by server-16.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 19 Feb 2016 14:15:58 -0000 Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8EF8220494; Fri, 19 Feb 2016 14:15:55 +0000 (UTC) Received: from garbanzo.do-not-panic.com (c-73-15-241-2.hsd1.ca.comcast.net [73.15.241.2]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 10A132047B; Fri, 19 Feb 2016 14:15:54 +0000 (UTC) From: "Luis R. Rodriguez" To: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de Date: Fri, 19 Feb 2016 06:15:40 -0800 Message-Id: <1455891343-10016-4-git-send-email-mcgrof@kernel.org> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1455891343-10016-1-git-send-email-mcgrof@kernel.org> References: <1455891343-10016-1-git-send-email-mcgrof@kernel.org> X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Cc: jgross@suse.com, rusty@rustcorp.com.au, x86@kernel.org, linux-kernel@vger.kernel.org, luto@amacapital.net, "Luis R. Rodriguez" , xen-devel@lists.xensource.com, david.vrabel@citrix.com, boris.ostrovsky@oracle.com, andriy.shevchenko@linux.intel.com, mcb30@ipxe.org Subject: [Xen-devel] [RFC v2 3/6] x86/init: move ebda reservations into linker table X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org X-Virus-Scanned: ClamAV using ClamSMTP This lets us annotate its requirements specifically for PC and lguest subarchitectures. While at it since head.c just has ebda data rename it. Since we're using linker tables and both x86 32-bit and 64-bit have them we don't need to declare a call for this separately. This lets us also keep this declared static now. Since we're using linker tables and have support to annotate subarchitecture do that instead. pv_legacy() is incorrect as its really only for legacy PV guests. There's no need for pv_legacy() check anymore now. v2: - Fix 0-day bot testing of on linking now rebranded head.o as ebda.o - Since we dropped paravirt_enabled() --> paravirt_legacy() rename in favor of just removing paravirt_enabled() this is based on that assumption. This removes one use case. Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Luis R. Rodriguez --- arch/x86/Makefile | 1 - arch/x86/include/asm/bios_ebda.h | 2 -- arch/x86/kernel/Makefile | 3 ++- arch/x86/kernel/{head.c => ebda.c} | 6 +++--- arch/x86/kernel/head32.c | 2 -- arch/x86/kernel/head64.c | 2 -- 6 files changed, 5 insertions(+), 11 deletions(-) rename arch/x86/kernel/{head.c => ebda.c} (94%) diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 4086abca0b32..ec9a798ffe6c 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -208,7 +208,6 @@ endif head-y := arch/x86/kernel/head_$(BITS).o head-y += arch/x86/kernel/head$(BITS).o -head-y += arch/x86/kernel/head.o libs-y += arch/x86/lib/ diff --git a/arch/x86/include/asm/bios_ebda.h b/arch/x86/include/asm/bios_ebda.h index aa6a3170ab5a..e63347eb3804 100644 --- a/arch/x86/include/asm/bios_ebda.h +++ b/arch/x86/include/asm/bios_ebda.h @@ -38,8 +38,6 @@ static inline unsigned int get_bios_ebda_length(void) return length; } -void reserve_ebda_region(void); - #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION /* * This is obviously not a great place for this, but we want to be diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index be167a0a5e2c..f5b3de07142b 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile @@ -2,7 +2,7 @@ # Makefile for the linux kernel. # -extra-y := head_$(BITS).o head$(BITS).o head.o vmlinux.lds +extra-y := head_$(BITS).o head$(BITS).o vmlinux.lds CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE) @@ -22,6 +22,7 @@ KASAN_SANITIZE_dumpstack_$(BITS).o := n CFLAGS_irq.o := -I$(src)/../include/asm/trace +obj-y := ebda.o obj-y := process_$(BITS).o signal.o obj-y += init.o sort-init.o obj-$(CONFIG_X86_DEBUG_LINKER_TABLES) += dbg-tables/ diff --git a/arch/x86/kernel/head.c b/arch/x86/kernel/ebda.c similarity index 94% rename from arch/x86/kernel/head.c rename to arch/x86/kernel/ebda.c index 4e3be58a1a77..defc2f07a80b 100644 --- a/arch/x86/kernel/head.c +++ b/arch/x86/kernel/ebda.c @@ -4,6 +4,7 @@ #include #include +#include /* * The BIOS places the EBDA/XBDA at the top of conventional @@ -26,7 +27,7 @@ #define LOWMEM_CAP 0x9f000U /* Absolute maximum */ #define INSANE_CUTOFF 0x20000U /* Less than this = insane */ -void __init reserve_ebda_region(void) +static void __init reserve_ebda_region(void) { unsigned int lowmem, ebda_addr; @@ -38,8 +39,6 @@ void __init reserve_ebda_region(void) * that the paravirt case can handle memory setup * correctly, without our help. */ - if (boot_params.hdr.hardware_subarch != X86_SUBARCH_PC) - return; /* end of low (conventional) memory */ lowmem = *(unsigned short *)__va(BIOS_LOWMEM_KILOBYTES); @@ -69,3 +68,4 @@ void __init reserve_ebda_region(void) /* reserve all memory between lowmem and the 1MB mark */ memblock_reserve(lowmem, 0x100000 - lowmem); } +x86_init_early_pc_simple(reserve_ebda_region); diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c index d93f3e42e61b..768fa3888066 100644 --- a/arch/x86/kernel/head32.c +++ b/arch/x86/kernel/head32.c @@ -26,8 +26,6 @@ static void __init i386_default_early_setup(void) /* Initialize 32bit specific setup functions */ x86_init.resources.reserve_resources = i386_reserve_resources; x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc; - - reserve_ebda_region(); } asmlinkage __visible void __init i386_start_kernel(void) diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index a3b56aecaeda..a823447139f5 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -194,8 +194,6 @@ void __init x86_64_start_reservations(char *real_mode_data) x86_init_fn_init_tables(); x86_init_fn_early_init(); - reserve_ebda_region(); - switch (boot_params.hdr.hardware_subarch) { case X86_SUBARCH_INTEL_MID: x86_intel_mid_early_setup();