|
@@ -243,18 +243,21 @@ int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
|
|
|
hdr->loadflags |= HEAP_FLAG;
|
|
|
}
|
|
|
|
|
|
- if (bootproto >= 0x0202) {
|
|
|
- hdr->cmd_line_ptr = (uintptr_t)cmd_line;
|
|
|
- } else if (bootproto >= 0x0200) {
|
|
|
- setup_base->screen_info.cl_magic = COMMAND_LINE_MAGIC;
|
|
|
- setup_base->screen_info.cl_offset =
|
|
|
- (uintptr_t)cmd_line - (uintptr_t)setup_base;
|
|
|
+ if (cmd_line) {
|
|
|
+ if (bootproto >= 0x0202) {
|
|
|
+ hdr->cmd_line_ptr = (uintptr_t)cmd_line;
|
|
|
+ } else if (bootproto >= 0x0200) {
|
|
|
+ setup_base->screen_info.cl_magic = COMMAND_LINE_MAGIC;
|
|
|
+ setup_base->screen_info.cl_offset =
|
|
|
+ (uintptr_t)cmd_line - (uintptr_t)setup_base;
|
|
|
+
|
|
|
+ hdr->setup_move_size = 0x9100;
|
|
|
+ }
|
|
|
|
|
|
- hdr->setup_move_size = 0x9100;
|
|
|
+ /* build command line at COMMAND_LINE_OFFSET */
|
|
|
+ build_command_line(cmd_line, auto_boot);
|
|
|
}
|
|
|
|
|
|
- /* build command line at COMMAND_LINE_OFFSET */
|
|
|
- build_command_line(cmd_line, auto_boot);
|
|
|
return 0;
|
|
|
}
|
|
|
|