aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/boot/compressed/eboot.c4
-rw-r--r--arch/x86/platform/efi/efi.c19
2 files changed, 21 insertions, 2 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
index f277184e2ac1..f4bdab1dbf66 100644
--- a/arch/x86/boot/compressed/eboot.c
+++ b/arch/x86/boot/compressed/eboot.c
@@ -1100,6 +1100,10 @@ struct boot_params *make_boot_params(struct efi_config *c)
1100 else 1100 else
1101 initrd_addr_max = hdr->initrd_addr_max; 1101 initrd_addr_max = hdr->initrd_addr_max;
1102 1102
1103 status = efi_parse_options(cmdline_ptr);
1104 if (status != EFI_SUCCESS)
1105 goto fail2;
1106
1103 status = handle_cmdline_files(sys_table, image, 1107 status = handle_cmdline_files(sys_table, image,
1104 (char *)(unsigned long)hdr->cmd_line_ptr, 1108 (char *)(unsigned long)hdr->cmd_line_ptr,
1105 "initrd=", initrd_addr_max, 1109 "initrd=", initrd_addr_max,
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 850da94fef30..a1f745b0bf1d 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -943,8 +943,23 @@ static int __init parse_efi_cmdline(char *str)
943 if (*str == '=') 943 if (*str == '=')
944 str++; 944 str++;
945 945
946 if (!strncmp(str, "old_map", 7)) 946 while (*str) {
947 set_bit(EFI_OLD_MEMMAP, &efi.flags); 947 if (!strncmp(str, "old_map", 7)) {
948 set_bit(EFI_OLD_MEMMAP, &efi.flags);
949 str += strlen("old_map");
950 }
951
952 /*
953 * Skip any options we don't understand. Presumably
954 * they apply to the EFI boot stub.
955 */
956 while (*str && *str != ',')
957 str++;
958
959 /* If we hit a delimiter, skip it */
960 if (*str == ',')
961 str++;
962 }
948 963
949 return 0; 964 return 0;
950} 965}