[RFC linux v2] init: make all setup_arch() output string to boot_command_line[]
From: yuan linyuthen 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[]
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(); }