Re: [PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE
Le 26/03/2021 à 16:26, Rob Herring a écrit : On Fri, Mar 26, 2021 at 8:20 AM Christophe Leroy wrote: Le 26/03/2021 à 15:08, Andreas Schwab a écrit : On Mär 26 2021, Christophe Leroy wrote: diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c index f8f15332caa2..e7c91ee478d1 100644 --- a/arch/riscv/kernel/setup.c +++ b/arch/riscv/kernel/setup.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -228,10 +229,8 @@ static void __init parse_dtb(void) } pr_err("No DTB passed to the kernel\n"); -#ifdef CONFIG_CMDLINE_FORCE -strlcpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); +cmdline_build(boot_command_line, NULL, COMMAND_LINE_SIZE); pr_info("Forcing kernel command line to: %s\n", boot_command_line); Shouldn't that message become conditional in some way? You are right, I did something similar on ARM but looks like I missed it on RISCV. How is this hunk even useful? Under what conditions can you boot without a DTB? Even with a built-in DTB, the DT cmdline handling would be called. Don't know, I wanted to keep as is today. Do you think the hunk should be completely removed ?
Re: [PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE
Στις 2021-03-26 17:26, Rob Herring έγραψε: On Fri, Mar 26, 2021 at 8:20 AM Christophe Leroy wrote: Le 26/03/2021 à 15:08, Andreas Schwab a écrit : > On Mär 26 2021, Christophe Leroy wrote: > >> diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c >> index f8f15332caa2..e7c91ee478d1 100644 >> --- a/arch/riscv/kernel/setup.c >> +++ b/arch/riscv/kernel/setup.c >> @@ -20,6 +20,7 @@ >> #include >> #include >> #include >> +#include >> >> #include >> #include >> @@ -228,10 +229,8 @@ static void __init parse_dtb(void) >> } >> >> pr_err("No DTB passed to the kernel\n"); >> -#ifdef CONFIG_CMDLINE_FORCE >> -strlcpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); >> +cmdline_build(boot_command_line, NULL, COMMAND_LINE_SIZE); >> pr_info("Forcing kernel command line to: %s\n", boot_command_line); > > Shouldn't that message become conditional in some way? > You are right, I did something similar on ARM but looks like I missed it on RISCV. How is this hunk even useful? Under what conditions can you boot without a DTB? Even with a built-in DTB, the DT cmdline handling would be called. Rob cced Paul who introduced this: https://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git/commit/arch/riscv/kernel/setup.c?id=8fd6e05c7463b635e51ec7df0a1858c1b5a6e350
Re: [PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE
On Fri, Mar 26, 2021 at 8:20 AM Christophe Leroy wrote: > > > > Le 26/03/2021 à 15:08, Andreas Schwab a écrit : > > On Mär 26 2021, Christophe Leroy wrote: > > > >> diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c > >> index f8f15332caa2..e7c91ee478d1 100644 > >> --- a/arch/riscv/kernel/setup.c > >> +++ b/arch/riscv/kernel/setup.c > >> @@ -20,6 +20,7 @@ > >> #include > >> #include > >> #include > >> +#include > >> > >> #include > >> #include > >> @@ -228,10 +229,8 @@ static void __init parse_dtb(void) > >> } > >> > >> pr_err("No DTB passed to the kernel\n"); > >> -#ifdef CONFIG_CMDLINE_FORCE > >> -strlcpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); > >> +cmdline_build(boot_command_line, NULL, COMMAND_LINE_SIZE); > >> pr_info("Forcing kernel command line to: %s\n", boot_command_line); > > > > Shouldn't that message become conditional in some way? > > > > You are right, I did something similar on ARM but looks like I missed it on > RISCV. How is this hunk even useful? Under what conditions can you boot without a DTB? Even with a built-in DTB, the DT cmdline handling would be called. Rob
Re: [PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE
Le 26/03/2021 à 15:08, Andreas Schwab a écrit : On Mär 26 2021, Christophe Leroy wrote: diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c index f8f15332caa2..e7c91ee478d1 100644 --- a/arch/riscv/kernel/setup.c +++ b/arch/riscv/kernel/setup.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -228,10 +229,8 @@ static void __init parse_dtb(void) } pr_err("No DTB passed to the kernel\n"); -#ifdef CONFIG_CMDLINE_FORCE - strlcpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); + cmdline_build(boot_command_line, NULL, COMMAND_LINE_SIZE); pr_info("Forcing kernel command line to: %s\n", boot_command_line); Shouldn't that message become conditional in some way? You are right, I did something similar on ARM but looks like I missed it on RISCV. Christophe
Re: [PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE
On Mär 26 2021, Christophe Leroy wrote: > diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c > index f8f15332caa2..e7c91ee478d1 100644 > --- a/arch/riscv/kernel/setup.c > +++ b/arch/riscv/kernel/setup.c > @@ -20,6 +20,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -228,10 +229,8 @@ static void __init parse_dtb(void) > } > > pr_err("No DTB passed to the kernel\n"); > -#ifdef CONFIG_CMDLINE_FORCE > - strlcpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); > + cmdline_build(boot_command_line, NULL, COMMAND_LINE_SIZE); > pr_info("Forcing kernel command line to: %s\n", boot_command_line); Shouldn't that message become conditional in some way? Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."
[PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE
This converts the architecture to GENERIC_CMDLINE. Signed-off-by: Christophe Leroy --- arch/riscv/Kconfig| 44 +-- arch/riscv/kernel/setup.c | 5 ++--- 2 files changed, 3 insertions(+), 46 deletions(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 87d7b52f278f..3dbd50bed037 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -39,6 +39,7 @@ config RISCV select EDAC_SUPPORT select GENERIC_ARCH_TOPOLOGY if SMP select GENERIC_ATOMIC64 if !64BIT + select GENERIC_CMDLINE select GENERIC_EARLY_IOREMAP select GENERIC_GETTIMEOFDAY if HAVE_GENERIC_VDSO select GENERIC_IOREMAP @@ -390,49 +391,6 @@ endmenu menu "Boot options" -config CMDLINE - string "Built-in kernel command line" - help - For most platforms, the arguments for the kernel's command line - are provided at run-time, during boot. However, there are cases - where either no arguments are being provided or the provided - arguments are insufficient or even invalid. - - When that occurs, it is possible to define a built-in command - line here and choose how the kernel should use it later on. - -choice - prompt "Built-in command line usage" if CMDLINE != "" - default CMDLINE_FALLBACK - help - Choose how the kernel will handle the provided built-in command - line. - -config CMDLINE_FALLBACK - bool "Use bootloader kernel arguments if available" - help - Use the built-in command line as fallback in case we get nothing - during boot. This is the default behaviour. - -config CMDLINE_EXTEND - bool "Extend bootloader kernel arguments" - help - The command-line arguments provided during boot will be - appended to the built-in command line. This is useful in - cases where the provided arguments are insufficient and - you don't want to or cannot modify them. - - -config CMDLINE_FORCE - bool "Always use the default kernel command string" - help - Always use the built-in command line, even if we get one during - boot. This is useful in case you need to override the provided - command line on systems where you don't have or want control - over it. - -endchoice - config EFI_STUB bool diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c index f8f15332caa2..e7c91ee478d1 100644 --- a/arch/riscv/kernel/setup.c +++ b/arch/riscv/kernel/setup.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -228,10 +229,8 @@ static void __init parse_dtb(void) } pr_err("No DTB passed to the kernel\n"); -#ifdef CONFIG_CMDLINE_FORCE - strlcpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); + cmdline_build(boot_command_line, NULL, COMMAND_LINE_SIZE); pr_info("Forcing kernel command line to: %s\n", boot_command_line); -#endif } void __init setup_arch(char **cmdline_p) -- 2.25.0