All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Alexander Kuleshov <kuleshovmail@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Borislav Petkov <bp@suse.de>,
	Mark Rustad <mark.d.rustad@intel.com>,
	Yinghai Lu <yinghai@kernel.org>
Subject: Re: [PATCH v2 1/2] x86/setup: introduce setup_bultin_cmdline
Date: Mon, 11 May 2015 13:36:14 +0300	[thread overview]
Message-ID: <1431340574.28073.47.camel@linux.intel.com> (raw)
In-Reply-To: <1431338947-25766-1-git-send-email-kuleshovmail@gmail.com>

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 <kuleshovmail@gmail.com>
> ---
>  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 <asm/bootparam.h>
>  #include <asm/x86_init.h>

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 <andriy.shevchenko@intel.com>
Intel Finland Oy


  parent reply	other threads:[~2015-05-11 10:36 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-11 10:08 [PATCH RESEND v5 0/2] x86/earlyprintk: setup earlyprintk as early as possible Alexander Kuleshov
2015-05-11 10:09 ` [PATCH v2 1/2] x86/setup: introduce setup_bultin_cmdline Alexander Kuleshov
2015-05-11 10:21   ` Borislav Petkov
2015-05-11 10:36   ` Andy Shevchenko [this message]
2015-05-11 10:09 ` [PATCH v5 2/2] x86/earlyprintk: setup earlyprintk as early as possible Alexander Kuleshov
2015-05-11 10:24   ` Borislav Petkov
2015-05-11 10:39 ` [PATCH RESEND v5 0/2] " Andy Shevchenko
2015-05-12  8:08 ` [PATCH v6 0/3] Alexander Kuleshov
2015-05-12  8:09   ` [PATCH v3 1/3] x86/setup: introduce setup_bultin_cmdline Alexander Kuleshov
2015-05-12 10:50     ` Andy Shevchenko
2015-05-12 16:14       ` Alexander Kuleshov
2015-05-12 17:52         ` Andy Shevchenko
2015-05-12  8:09   ` [PATCH v1 2/3] x86/setup: handle builtin command line as early as possible Alexander Kuleshov
2015-05-12  8:10   ` [PATCH v6 3/3] x86/earlyprintk: setup earlyprintk " Alexander Kuleshov
2015-05-12 11:19     ` Andy Shevchenko
2015-05-12 16:26       ` Alexander Kuleshov
2015-05-12 17:58         ` Andy Shevchenko
2015-05-12 18:08           ` Alexander Kuleshov

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=1431340574.28073.47.camel@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=bp@suse.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=kuleshovmail@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.d.rustad@intel.com \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=yinghai@kernel.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.