[RFC linux v2] init: make all setup_arch() output string to boot_command_line[]

2018-04-06 Thread yuan linyu
From: yuan linyu 

then all arch boot parameter handled in the same way in start_kernel()

Signed-off-by: yuan linyu 
---
v2:
fix kbuild issue of parisc

 arch/alpha/kernel/setup.c  |  4 +---
 arch/arc/kernel/setup.c|  5 +
 arch/arm/kernel/setup.c|  7 +--
 arch/arm64/kernel/setup.c  |  4 +---
 arch/c6x/kernel/setup.c|  5 +
 arch/h8300/kernel/setup.c  |  3 +--
 arch/hexagon/kernel/setup.c| 16 +---
 arch/ia64/kernel/setup.c   | 15 ---
 arch/m68k/kernel/setup_mm.c|  5 ++---
 arch/m68k/kernel/setup_no.c|  3 +--
 arch/microblaze/kernel/setup.c |  4 +---
 arch/mips/kernel/setup.c   | 11 +++
 arch/nds32/kernel/setup.c  |  3 +--
 arch/nios2/kernel/setup.c  |  5 +
 arch/openrisc/kernel/setup.c   |  4 +---
 arch/parisc/kernel/setup.c | 11 +++
 arch/powerpc/kernel/setup-common.c |  4 +---
 arch/riscv/kernel/setup.c  |  4 +---
 arch/s390/kernel/setup.c   |  6 +-
 arch/sh/kernel/setup.c |  7 ---
 arch/sparc/kernel/setup_32.c   |  9 +
 arch/sparc/kernel/setup_64.c   |  8 
 arch/um/kernel/um_arch.c   |  3 +--
 arch/unicore32/kernel/setup.c  |  8 +---
 arch/x86/kernel/setup.c|  6 +-
 arch/xtensa/kernel/setup.c |  9 +
 include/linux/init.h   |  2 +-
 init/main.c| 14 +++---
 28 files changed, 60 insertions(+), 125 deletions(-)

diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
index 5576f7646fb6..c74675cf7129 100644
--- a/arch/alpha/kernel/setup.c
+++ b/arch/alpha/kernel/setup.c
@@ -505,8 +505,7 @@ register_cpus(void)
 
 arch_initcall(register_cpus);
 
-void __init
-setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
extern char _end[];
 
@@ -566,7 +565,6 @@ setup_arch(char **cmdline_p)
strlcpy(command_line, COMMAND_LINE, sizeof command_line);
}
strcpy(boot_command_line, command_line);
-   *cmdline_p = command_line;
 
/* 
 * Process command-line arguments.
diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c
index b2cae79a25d7..9cfdcf42bf28 100644
--- a/arch/arc/kernel/setup.c
+++ b/arch/arc/kernel/setup.c
@@ -456,7 +456,7 @@ static inline int is_kernel(unsigned long addr)
return 0;
 }
 
-void __init setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
 #ifdef CONFIG_ARC_UBOOT_SUPPORT
/* make sure that uboot passed pointer to cmdline/dtb is valid */
@@ -487,9 +487,6 @@ void __init setup_arch(char **cmdline_p)
}
}
 
-   /* Save unparsed command line copy for /proc/cmdline */
-   *cmdline_p = boot_command_line;
-
/* To force early parsing of things like mem=xxx */
parse_early_param();
 
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index fc40a2b40595..1025e3a37689 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -153,7 +153,6 @@ EXPORT_SYMBOL(elf_platform);
 
 static const char *cpu_name;
 static const char *machine_name;
-static char __initdata cmd_line[COMMAND_LINE_SIZE];
 const struct machine_desc *machine_desc __initdata;
 
 static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', 
'?', '?', 'b' } };
@@ -1061,7 +1060,7 @@ void __init hyp_mode_check(void)
 #endif
 }
 
-void __init setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
const struct machine_desc *mdesc;
 
@@ -1091,10 +1090,6 @@ void __init setup_arch(char **cmdline_p)
init_mm.end_data   = (unsigned long) _edata;
init_mm.brk= (unsigned long) _end;
 
-   /* populate cmd_line too for later use, preserving boot_command_line */
-   strlcpy(cmd_line, boot_command_line, COMMAND_LINE_SIZE);
-   *cmdline_p = cmd_line;
-
early_fixmap_init();
early_ioremap_init();
 
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 30ad2f085d1f..c7ba4d32e7f7 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -243,15 +243,13 @@ static void __init request_standard_resources(void)
 
 u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
 
-void __init setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
init_mm.start_code = (unsigned long) _text;
init_mm.end_code   = (unsigned long) _etext;
init_mm.end_data   = (unsigned long) _edata;
init_mm.brk= (unsigned long) _end;
 
-   *cmdline_p = boot_command_line;
-
early_fixmap_init();
early_ioremap_init();
 
diff --git a/arch/c6x/kernel/setup.c b/arch/c6x/kernel/setup.c
index 786e36e2f61d..012c8e746889 100644
--- a/arch/c6x/kernel/setup.c
+++ b/arch/c6x/kernel/setup.c
@@ -294,16 +294,13 @@ notrace void __init 

[RFC linux v2] init: make all setup_arch() output string to boot_command_line[]

2018-04-06 Thread yuan linyu
From: yuan linyu 

then all arch boot parameter handled in the same way in start_kernel()

Signed-off-by: yuan linyu 
---
v2:
fix kbuild issue of parisc

 arch/alpha/kernel/setup.c  |  4 +---
 arch/arc/kernel/setup.c|  5 +
 arch/arm/kernel/setup.c|  7 +--
 arch/arm64/kernel/setup.c  |  4 +---
 arch/c6x/kernel/setup.c|  5 +
 arch/h8300/kernel/setup.c  |  3 +--
 arch/hexagon/kernel/setup.c| 16 +---
 arch/ia64/kernel/setup.c   | 15 ---
 arch/m68k/kernel/setup_mm.c|  5 ++---
 arch/m68k/kernel/setup_no.c|  3 +--
 arch/microblaze/kernel/setup.c |  4 +---
 arch/mips/kernel/setup.c   | 11 +++
 arch/nds32/kernel/setup.c  |  3 +--
 arch/nios2/kernel/setup.c  |  5 +
 arch/openrisc/kernel/setup.c   |  4 +---
 arch/parisc/kernel/setup.c | 11 +++
 arch/powerpc/kernel/setup-common.c |  4 +---
 arch/riscv/kernel/setup.c  |  4 +---
 arch/s390/kernel/setup.c   |  6 +-
 arch/sh/kernel/setup.c |  7 ---
 arch/sparc/kernel/setup_32.c   |  9 +
 arch/sparc/kernel/setup_64.c   |  8 
 arch/um/kernel/um_arch.c   |  3 +--
 arch/unicore32/kernel/setup.c  |  8 +---
 arch/x86/kernel/setup.c|  6 +-
 arch/xtensa/kernel/setup.c |  9 +
 include/linux/init.h   |  2 +-
 init/main.c| 14 +++---
 28 files changed, 60 insertions(+), 125 deletions(-)

diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
index 5576f7646fb6..c74675cf7129 100644
--- a/arch/alpha/kernel/setup.c
+++ b/arch/alpha/kernel/setup.c
@@ -505,8 +505,7 @@ register_cpus(void)
 
 arch_initcall(register_cpus);
 
-void __init
-setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
extern char _end[];
 
@@ -566,7 +565,6 @@ setup_arch(char **cmdline_p)
strlcpy(command_line, COMMAND_LINE, sizeof command_line);
}
strcpy(boot_command_line, command_line);
-   *cmdline_p = command_line;
 
/* 
 * Process command-line arguments.
diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c
index b2cae79a25d7..9cfdcf42bf28 100644
--- a/arch/arc/kernel/setup.c
+++ b/arch/arc/kernel/setup.c
@@ -456,7 +456,7 @@ static inline int is_kernel(unsigned long addr)
return 0;
 }
 
-void __init setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
 #ifdef CONFIG_ARC_UBOOT_SUPPORT
/* make sure that uboot passed pointer to cmdline/dtb is valid */
@@ -487,9 +487,6 @@ void __init setup_arch(char **cmdline_p)
}
}
 
-   /* Save unparsed command line copy for /proc/cmdline */
-   *cmdline_p = boot_command_line;
-
/* To force early parsing of things like mem=xxx */
parse_early_param();
 
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index fc40a2b40595..1025e3a37689 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -153,7 +153,6 @@ EXPORT_SYMBOL(elf_platform);
 
 static const char *cpu_name;
 static const char *machine_name;
-static char __initdata cmd_line[COMMAND_LINE_SIZE];
 const struct machine_desc *machine_desc __initdata;
 
 static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', 
'?', '?', 'b' } };
@@ -1061,7 +1060,7 @@ void __init hyp_mode_check(void)
 #endif
 }
 
-void __init setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
const struct machine_desc *mdesc;
 
@@ -1091,10 +1090,6 @@ void __init setup_arch(char **cmdline_p)
init_mm.end_data   = (unsigned long) _edata;
init_mm.brk= (unsigned long) _end;
 
-   /* populate cmd_line too for later use, preserving boot_command_line */
-   strlcpy(cmd_line, boot_command_line, COMMAND_LINE_SIZE);
-   *cmdline_p = cmd_line;
-
early_fixmap_init();
early_ioremap_init();
 
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 30ad2f085d1f..c7ba4d32e7f7 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -243,15 +243,13 @@ static void __init request_standard_resources(void)
 
 u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
 
-void __init setup_arch(char **cmdline_p)
+void __init setup_arch(void)
 {
init_mm.start_code = (unsigned long) _text;
init_mm.end_code   = (unsigned long) _etext;
init_mm.end_data   = (unsigned long) _edata;
init_mm.brk= (unsigned long) _end;
 
-   *cmdline_p = boot_command_line;
-
early_fixmap_init();
early_ioremap_init();
 
diff --git a/arch/c6x/kernel/setup.c b/arch/c6x/kernel/setup.c
index 786e36e2f61d..012c8e746889 100644
--- a/arch/c6x/kernel/setup.c
+++ b/arch/c6x/kernel/setup.c
@@ -294,16 +294,13 @@ notrace void __init machine_init(unsigned long dt_ptr)
parse_early_param();
 }