Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753315AbbEZNIT (ORCPT ); Tue, 26 May 2015 09:08:19 -0400 Received: from [209.85.217.174] ([209.85.217.174]:35131 "EHLO mail-lb0-f174.google.com" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1752825AbbEZNIR (ORCPT ); Tue, 26 May 2015 09:08:17 -0400 From: Alexander Kuleshov To: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" Cc: Alexander Kuleshov , Andy Shevchenko , LKML , Greg Kroah-Hartman , Borislav Petkov , Mark Rustad , Yinghai Lu Subject: [PATCH v8 1/3] x86/setup: introduce setup_bultin_cmdline Date: Tue, 26 May 2015 19:07:25 +0600 Message-Id: <1432645645-30772-1-git-send-email-kuleshovmail@gmail.com> X-Mailer: git-send-email 2.4.0.350.g9532ead In-Reply-To: <1432645607-29343-1-git-send-email-kuleshovmail@gmail.com> References: <1432645607-29343-1-git-send-email-kuleshovmail@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3364 Lines: 100 This patch introduces the setup_builtin_cmdline function which appends or overrides boot_command_line with the builtin_cmdline if CONFIG_CMDLINE_BOOL is set. Previously this functional was in the setup_arch, but we need to move it for getting actual command line as early as possible in the arch/x86/kernel/head{32,64}.c for the earlyprintk setup. Signed-off-by: Alexander Kuleshov --- arch/x86/include/asm/setup.h | 1 + arch/x86/kernel/setup.c | 34 +++++++++++++++++++--------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h index f69e06b..59efd0d 100644 --- a/arch/x86/include/asm/setup.h +++ b/arch/x86/include/asm/setup.h @@ -119,6 +119,7 @@ asmlinkage void __init x86_64_start_kernel(char *real_mode); asmlinkage void __init x86_64_start_reservations(char *real_mode_data); #endif /* __i386__ */ +void __init setup_builtin_cmdline(void); #endif /* _SETUP */ #else #define RESERVE_BRK(name,sz) \ diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index d74ac33..28dea1c 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -733,7 +733,7 @@ static void __init trim_snb_memory(void) * already been reserved. */ memblock_reserve(0, 1<<20); - + for (i = 0; i < ARRAY_SIZE(bad_pages); i++) { if (memblock_reserve(bad_pages[i], PAGE_SIZE)) printk(KERN_WARNING "failed to reserve 0x%08lx\n", @@ -825,7 +825,7 @@ static void __init trim_low_memory_range(void) { memblock_reserve(0, ALIGN(reserve_low, PAGE_SIZE)); } - + /* * Dump out kernel offset information on panic. */ @@ -845,6 +845,22 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p) return 0; } +void __init setup_builtin_cmdline(void) +{ +#ifdef CONFIG_CMDLINE_BOOL +#ifdef CONFIG_CMDLINE_OVERRIDE + strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); +#else + if (builtin_cmdline[0]) { + /* append boot loader cmdline to builtin */ + strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE); + strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE); + strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); + } +#endif +#endif +} + /* * Determine if we were loaded by an EFI loader. If so, then we have also been * passed the efi memmap, systab, etc., so we should use these data structures @@ -973,19 +989,7 @@ void __init setup_arch(char **cmdline_p) bss_resource.start = __pa_symbol(__bss_start); bss_resource.end = __pa_symbol(__bss_stop)-1; -#ifdef CONFIG_CMDLINE_BOOL -#ifdef CONFIG_CMDLINE_OVERRIDE - strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); -#else - if (builtin_cmdline[0]) { - /* append boot loader cmdline to builtin */ - strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE); - strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE); - strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); - } -#endif -#endif - + setup_builtin_cmdline(); strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); *cmdline_p = command_line; -- 2.4.0.350.g9532ead -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/