Re: [PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE

2021-04-02 Thread Christophe Leroy




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-29 Thread Nick Kossifidis

Στις 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

2021-03-26 Thread 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


Re: [PATCH v3 11/17] riscv: Convert to GENERIC_CMDLINE

2021-03-26 Thread Christophe Leroy




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

2021-03-26 Thread Andreas Schwab
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

2021-03-26 Thread Christophe Leroy
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