From: Yinghai Lu <yinghai@kernel.org> To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com>, Andrew Morton <akpm@linux-foundation.org>, Jan Kiszka <jan.kiszka@web.de>, Jason Wessel <jason.wessel@windriver.com>, Borislav Petkov <bp@alien8.de>, linux-kernel@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>, Alexander Duyck <alexander.h.duyck@intel.com> Subject: [PATCH 31/35] x86: Merge early kernel reserve for 32bit and 64bit Date: Thu, 24 Jan 2013 12:20:12 -0800 Message-ID: <1359058816-7615-32-git-send-email-yinghai@kernel.org> (raw) In-Reply-To: <1359058816-7615-1-git-send-email-yinghai@kernel.org> They are the same, and we could move them out from head32/64.c to setup.c. We are using memblock, and it could handle overlapping properly, so we don't need to reserve some at first to hold the location, and just need to make sure we reserve them before we are using memblock to find free mem to use. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Cc: Alexander Duyck <alexander.h.duyck@intel.com> --- arch/x86/kernel/head32.c | 9 --------- arch/x86/kernel/head64.c | 9 --------- arch/x86/kernel/setup.c | 9 +++++++++ 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c index b071d41..17f7792 100644 --- a/arch/x86/kernel/head32.c +++ b/arch/x86/kernel/head32.c @@ -30,9 +30,6 @@ static void __init i386_default_early_setup(void) void __init i386_start_kernel(void) { - memblock_reserve(__pa_symbol(_text), - (unsigned long)__bss_stop - (unsigned long)_text); - /* Call the subarch specific early setup function */ switch (boot_params.hdr.hardware_subarch) { case X86_SUBARCH_MRST: @@ -46,11 +43,5 @@ void __init i386_start_kernel(void) break; } - /* - * At this point everything still needed from the boot loader - * or BIOS or kernel text should be early reserved or marked not - * RAM in e820. All other memory is free game. - */ - start_kernel(); } diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index e63d29a..d9d7c75 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -184,16 +184,7 @@ void __init x86_64_start_reservations(char *real_mode_data) if (!boot_params.hdr.version) copy_bootdata(__va(real_mode_data)); - memblock_reserve(__pa_symbol(_text), - (unsigned long)__bss_stop - (unsigned long)_text); - reserve_ebda_region(); - /* - * At this point everything still needed from the boot loader - * or BIOS or kernel text should be early reserved or marked not - * RAM in e820. All other memory is free game. - */ - start_kernel(); } diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 4d6179f..be6e435 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -805,8 +805,17 @@ early_param("reservelow", parse_reservelow); void __init setup_arch(char **cmdline_p) { + memblock_reserve(__pa_symbol(_text), + (unsigned long)__bss_stop - (unsigned long)_text); + early_reserve_initrd(); + /* + * At this point everything still needed from the boot loader + * or BIOS or kernel text should be early reserved or marked not + * RAM in e820. All other memory is free game. + */ + #ifdef CONFIG_X86_32 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); visws_early_detect(); -- 1.7.10.4
next prev parent reply index Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-01-24 20:19 [PATCH 00/35] x86, boot, 64bit: Add support for loading ramdisk and bzImage above 4G Yinghai Lu 2013-01-24 20:19 ` [PATCH 01/35] x86, mm: Fix page table early allocation offset checking Yinghai Lu 2013-01-30 1:20 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 02/35] x86: Handle multiple exactmaps and out of order exactmap Yinghai Lu 2013-01-24 20:19 ` [PATCH 03/35] x86, mm: Introduce memmap=reserveram Yinghai Lu 2013-01-24 20:19 ` [PATCH 04/35] x86: Clean up e820 add kernel range Yinghai Lu 2013-01-24 23:21 ` Jacob Shin 2013-01-30 1:21 ` [tip:x86/mm2] x86: Factor out e820_add_kernel_range() tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 05/35] x86, 64bit, mm: Make pgd next calculation consistent with pud/pmd Yinghai Lu 2013-01-30 1:22 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 06/35] x86, realmode: Set real_mode permissions early Yinghai Lu 2013-01-30 1:23 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 07/35] x86, 64bit, mm: Add generic kernel/ident mapping helper Yinghai Lu 2013-01-30 1:24 ` [tip:x86/mm2] x86, 64bit, mm: Add generic kernel/ ident " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 08/35] x86, 64bit: Copy zero-page early Yinghai Lu 2013-01-30 1:25 ` [tip:x86/mm2] x86, 64bit: Copy struct boot_params early tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 09/35] x86, 64bit, realmode: Use init_level4_pgt to set trapmoline_pgd directly Yinghai Lu 2013-01-30 1:27 ` [tip:x86/mm2] x86, 64bit, realmode: Use init_level4_pgt to set trampoline_pgd directly tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 10/35] x86, realmode: Separate real_mode reserve and setup Yinghai Lu 2013-01-30 1:28 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 11/35] x86, 64bit: early #PF handler set page table Yinghai Lu 2013-01-30 1:29 ` [tip:x86/mm2] x86, 64bit: Use a #PF handler to materialize early mappings on demand tip-bot for H. Peter Anvin 2013-01-24 20:19 ` [PATCH 12/35] x86, 64bit: #PF handler set page to cover only 2M per #PF Yinghai Lu 2013-01-30 1:30 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 13/35] x86, 64bit: Don't set max_pfn_mapped wrong value early on native path Yinghai Lu 2013-01-30 1:31 ` [tip:x86/mm2] x86, 64bit: Don' t " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 14/35] x86: Merge early_reserve_initrd for 32bit and 64bit Yinghai Lu 2013-01-30 1:32 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 15/35] x86: Add get_ramdisk_image/size() Yinghai Lu 2013-01-30 1:34 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 16/35] x86, boot: Add get_cmd_line_ptr() Yinghai Lu 2013-01-30 1:35 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 17/35] x86, boot: Move checking of cmd_line_ptr out of common path Yinghai Lu 2013-01-30 1:36 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:19 ` [PATCH 18/35] x86, boot: Pass cmd_line_ptr with unsigned long instead Yinghai Lu 2013-01-30 1:37 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 19/35] x86, boot: Move verify_cpu.S and no_longmode down Yinghai Lu 2013-01-30 1:38 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 20/35] x86, boot: Move lldt/ltr out of 64bit code section Yinghai Lu 2013-01-30 1:39 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 21/35] x86, kexec: Remove 1024G limitation for kexec buffer on 64bit Yinghai Lu 2013-01-30 1:40 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 22/35] x86, kexec: Set ident mapping for kernel that is above max_pfn Yinghai Lu 2013-01-30 1:42 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 23/35] x86, kexec: Replace ident_mapping_init and init_level4_page Yinghai Lu 2013-01-30 1:43 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 24/35] x86, kexec, 64bit: Only set ident mapping for ram Yinghai Lu 2013-01-30 1:44 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 25/35] x86, boot: Add fields to support load bzImage and ramdisk above 4G Yinghai Lu 2013-01-28 0:07 ` [tip:x86/boot] x86, boot: Define the 2.12 bzImage boot protocol tip-bot for H. Peter Anvin 2013-01-29 9:48 ` [tip:x86/boot] x86, boot: Sanitize boot_params if not zeroed on creation tip-bot for H. Peter Anvin 2013-01-30 1:45 ` [tip:x86/mm2] x86, boot: enable support load bzImage and ramdisk above 4G tip-bot for Yinghai Lu 2013-01-30 1:54 ` Yinghai Lu 2013-01-30 2:18 ` H. Peter Anvin 2013-01-30 3:47 ` [tip:x86/mm2] x86, boot: Support loading bzImage, boot_params " tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 26/35] x86, boot: Update comments about entries for 64bit image Yinghai Lu 2013-01-30 1:46 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-30 3:48 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 27/35] x86, boot: Not need to check setup_header version for setup_data Yinghai Lu 2013-01-30 1:47 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-30 3:49 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 28/35] memblock: Add memblock_mem_size() Yinghai Lu 2013-01-30 1:49 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-30 3:50 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 29/35] x86, kdump: Remove crashkernel range find limit for 64bit Yinghai Lu 2013-01-30 1:50 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-30 3:51 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 30/35] x86: Add Crash kernel low reservation Yinghai Lu 2013-01-30 1:51 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-02-07 5:14 ` Rob Landley 2013-02-07 6:39 ` Yinghai Lu 2013-01-30 3:52 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` Yinghai Lu [this message] 2013-01-30 1:52 ` [tip:x86/mm2] x86: Merge early kernel reserve for 32bit and 64bit tip-bot for Yinghai Lu 2013-01-30 3:53 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 32/35] x86, 64bit, mm: Mark data/bss/brk to nx Yinghai Lu 2013-01-30 1:53 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-30 3:55 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 33/35] x86, 64bit, mm: hibernate use generic mapping_init Yinghai Lu 2013-01-24 22:50 ` Rafael J. Wysocki 2013-01-30 1:54 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-30 3:56 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 34/35] mm: Add alloc_bootmem_low_pages_nopanic() Yinghai Lu 2013-01-30 1:56 ` [tip:x86/mm2] " tip-bot for Yinghai Lu 2013-01-30 3:57 ` tip-bot for Yinghai Lu 2013-01-24 20:20 ` [PATCH 35/35] x86: Don't panic if can not alloc buffer for swiotlb Yinghai Lu 2013-01-25 16:47 ` Konrad Rzeszutek Wilk 2013-01-30 1:57 ` [tip:x86/mm2] x86: Don' t " tip-bot for Yinghai Lu 2013-01-30 3:58 ` tip-bot for Yinghai Lu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1359058816-7615-32-git-send-email-yinghai@kernel.org \ --to=yinghai@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=alexander.h.duyck@intel.com \ --cc=bp@alien8.de \ --cc=ebiederm@xmission.com \ --cc=hpa@zytor.com \ --cc=jan.kiszka@web.de \ --cc=jason.wessel@windriver.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@elte.hu \ --cc=tglx@linutronix.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git