Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] Dynamic kernel command-line: x86_64

1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Alon Bar-Lev and committed by
Linus Torvalds
adf48856 712f77b5

+6 -6
+2 -2
arch/x86_64/kernel/head64.c
··· 34 34 #define OLD_CL_BASE_ADDR 0x90000 35 35 #define OLD_CL_OFFSET 0x90022 36 36 37 - extern char saved_command_line[]; 37 + extern char __initdata boot_command_line[]; 38 38 39 39 static void __init copy_bootdata(char *real_mode_data) 40 40 { ··· 50 50 new_data = OLD_CL_BASE_ADDR + * (u16 *) OLD_CL_OFFSET; 51 51 } 52 52 command_line = (char *) ((u64)(new_data)); 53 - memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); 53 + memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); 54 54 } 55 55 56 56 void __init x86_64_start_kernel(char * real_mode_data)
+3 -3
arch/x86_64/kernel/setup.c
··· 100 100 101 101 extern int root_mountflags; 102 102 103 - char command_line[COMMAND_LINE_SIZE]; 103 + char __initdata command_line[COMMAND_LINE_SIZE]; 104 104 105 105 struct resource standard_io_resources[] = { 106 106 { .name = "dma1", .start = 0x00, .end = 0x1f, ··· 343 343 344 344 void __init setup_arch(char **cmdline_p) 345 345 { 346 - printk(KERN_INFO "Command line: %s\n", saved_command_line); 346 + printk(KERN_INFO "Command line: %s\n", boot_command_line); 347 347 348 348 ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV); 349 349 screen_info = SCREEN_INFO; ··· 373 373 374 374 early_identify_cpu(&boot_cpu_data); 375 375 376 - strlcpy(command_line, saved_command_line, COMMAND_LINE_SIZE); 376 + strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); 377 377 *cmdline_p = command_line; 378 378 379 379 parse_early_param();
+1 -1
include/asm-x86_64/bootsetup.h
··· 31 31 #define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF)) 32 32 #define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF)) 33 33 #define EDD_BUF ((struct edd_info *) (PARAM+EDDBUF)) 34 - #define COMMAND_LINE saved_command_line 34 + #define COMMAND_LINE boot_command_line 35 35 36 36 #define RAMDISK_IMAGE_START_MASK 0x07FF 37 37 #define RAMDISK_PROMPT_FLAG 0x8000