|
@@ -112,14 +112,23 @@ static void __init clear_bss(void)
|
|
|
(unsigned long) __bss_stop - (unsigned long) __bss_start);
|
|
|
}
|
|
|
|
|
|
+static unsigned long get_cmd_line_ptr(void)
|
|
|
+{
|
|
|
+ unsigned long cmd_line_ptr = boot_params.hdr.cmd_line_ptr;
|
|
|
+
|
|
|
+ return cmd_line_ptr;
|
|
|
+}
|
|
|
+
|
|
|
static void __init copy_bootdata(char *real_mode_data)
|
|
|
{
|
|
|
char * command_line;
|
|
|
+ unsigned long cmd_line_ptr;
|
|
|
|
|
|
memcpy(&boot_params, real_mode_data, sizeof boot_params);
|
|
|
sanitize_boot_params(&boot_params);
|
|
|
- if (boot_params.hdr.cmd_line_ptr) {
|
|
|
- command_line = __va(boot_params.hdr.cmd_line_ptr);
|
|
|
+ cmd_line_ptr = get_cmd_line_ptr();
|
|
|
+ if (cmd_line_ptr) {
|
|
|
+ command_line = __va(cmd_line_ptr);
|
|
|
memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
|
|
|
}
|
|
|
}
|