Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adf48856 authored by Alon Bar-Lev's avatar Alon Bar-Lev Committed by Linus Torvalds
Browse files

[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: default avatarAlon Bar-Lev <alon.barlev@gmail.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 712f77b5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ static void __init clear_bss(void)
#define OLD_CL_BASE_ADDR        0x90000
#define OLD_CL_OFFSET           0x90022

extern char saved_command_line[];
extern char __initdata boot_command_line[];

static void __init copy_bootdata(char *real_mode_data)
{
@@ -50,7 +50,7 @@ static void __init copy_bootdata(char *real_mode_data)
		new_data = OLD_CL_BASE_ADDR + * (u16 *) OLD_CL_OFFSET;
	}
	command_line = (char *) ((u64)(new_data));
	memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
	memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
}

void __init x86_64_start_kernel(char * real_mode_data)
+3 −3
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ EXPORT_SYMBOL_GPL(edid_info);

extern int root_mountflags;

char command_line[COMMAND_LINE_SIZE];
char __initdata command_line[COMMAND_LINE_SIZE];

struct resource standard_io_resources[] = {
	{ .name = "dma1", .start = 0x00, .end = 0x1f,
@@ -343,7 +343,7 @@ static void discover_ebda(void)

void __init setup_arch(char **cmdline_p)
{
	printk(KERN_INFO "Command line: %s\n", saved_command_line);
	printk(KERN_INFO "Command line: %s\n", boot_command_line);

 	ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV);
 	screen_info = SCREEN_INFO;
@@ -373,7 +373,7 @@ void __init setup_arch(char **cmdline_p)

	early_identify_cpu(&boot_cpu_data);

	strlcpy(command_line, saved_command_line, COMMAND_LINE_SIZE);
	strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
	*cmdline_p = command_line;

	parse_early_param();
+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ extern char x86_boot_params[BOOT_PARAM_SIZE];
#define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF))
#define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF))
#define EDD_BUF     ((struct edd_info *) (PARAM+EDDBUF))
#define COMMAND_LINE saved_command_line
#define COMMAND_LINE boot_command_line

#define RAMDISK_IMAGE_START_MASK  	0x07FF
#define RAMDISK_PROMPT_FLAG		0x8000