Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753361AbbEKKgW (ORCPT ); Mon, 11 May 2015 06:36:22 -0400 Received: from mga03.intel.com ([134.134.136.65]:64208 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752731AbbEKKgT (ORCPT ); Mon, 11 May 2015 06:36:19 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,406,1427785200"; d="scan'208";a="491996873" Message-ID: <1431340574.28073.47.camel@linux.intel.com> Subject: Re: [PATCH v2 1/2] x86/setup: introduce setup_bultin_cmdline From: Andy Shevchenko To: Alexander Kuleshov Cc: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , LKML , Greg Kroah-Hartman , Borislav Petkov , Mark Rustad , Yinghai Lu Date: Mon, 11 May 2015 13:36:14 +0300 In-Reply-To: <1431338947-25766-1-git-send-email-kuleshovmail@gmail.com> References: <1431338914-24245-1-git-send-email-kuleshovmail@gmail.com> <1431338947-25766-1-git-send-email-kuleshovmail@gmail.com> Organization: Intel Finland Oy Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.9-1+b1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4925 Lines: 142 On Mon, 2015-05-11 at 16:09 +0600, Alexander Kuleshov wrote: > This patch introduces setup_builtin_cmdline function which appends/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. > Thanks for update. See my comments below. Don't forget to address what Borislav told already twice. > Changes: > > v2: function renamed from setup_cmdline to setup_builtin_cmdline to > avoid conflict with the setup_cmdline from the arch/x86/kernel/kexec-bzimage64.c You mare remove those lines since it should be a part of cover letter now. Or, if you still wish to have them, move after --- line. > > Signed-off-by: Alexander Kuleshov > --- > arch/x86/include/asm/setup.h | 3 ++- > arch/x86/kernel/head32.c | 1 + > arch/x86/kernel/head64.c | 1 + > arch/x86/kernel/setup.c | 28 +++++++++++++++------------- > 4 files changed, 19 insertions(+), 14 deletions(-) > > diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h > index f69e06b..dde474a 100644 > --- a/arch/x86/include/asm/setup.h > +++ b/arch/x86/include/asm/setup.h > @@ -24,6 +24,7 @@ > #define OLD_CL_ADDRESS 0x020 /* Relative to real mode data */ > #define NEW_CL_POINTER 0x228 /* Relative to real mode data */ > > + > #ifndef __ASSEMBLY__ > #include > #include This chunk is not needed. > @@ -117,8 +118,8 @@ asmlinkage void __init i386_start_kernel(void); > #else > asmlinkage void __init x86_64_start_kernel(char *real_mode); > asmlinkage void __init x86_64_start_reservations(char *real_mode_data); > - Why? It shouldn't be here since it's redundant change. > #endif /* __i386__ */ > +void __init setup_builtin_cmdline(void); > #endif /* _SETUP */ > #else > #define RESERVE_BRK(name,sz) \ > diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c > index 2911ef3..95eed21 100644 > --- a/arch/x86/kernel/head32.c > +++ b/arch/x86/kernel/head32.c > @@ -31,6 +31,7 @@ static void __init i386_default_early_setup(void) > > asmlinkage __visible void __init i386_start_kernel(void) > { > + setup_builtin_cmdline(); > cr4_init_shadow(); > sanitize_boot_params(&boot_params); > > diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c > index 2b55ee6..df290d1 100644 > --- a/arch/x86/kernel/head64.c > +++ b/arch/x86/kernel/head64.c > @@ -171,6 +171,7 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data) > load_idt((const struct desc_ptr *)&idt_descr); > > copy_bootdata(__va(real_mode_data)); > + setup_builtin_cmdline(); > > /* > * Load microcode early on BSP. > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c > index d74ac33..c9d1896 100644 > --- a/arch/x86/kernel/setup.c > +++ b/arch/x86/kernel/setup.c > @@ -845,6 +845,21 @@ 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 > +} > + It might be a nice idea to split this to two patches: 1) split helper function, 2) update usage of it. > /* > * 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 +988,6 @@ 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 > - > strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); > *cmdline_p = command_line; > -- Andy Shevchenko Intel Finland Oy -- 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/