summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2020-01-18 19:57:05 +0300
committerIngo Molnar <mingo@kernel.org>2020-01-22 10:01:13 +0300
commit0779221e7166c6865555bb6d29bf6af76fc316bd (patch)
tree068409381d3468e4d0d6f3f7df1027eb47a4c36c
parentbc310baf2ba381c648983c7f4748327f17324562 (diff)
downloadlinux-0779221e7166c6865555bb6d29bf6af76fc316bd.tar.xz
efi/x86: Disallow efi=old_map in mixed mode
Before: 1f299fad1e31: ("efi/x86: Limit EFI old memory map to SGI UV machines") enabling the old EFI memory map on mixed mode systems disabled EFI runtime services altogether. Given that efi=old_map is a debug feature designed to work around firmware problems related to EFI runtime services, and disabling them can be achieved more straightforwardly using 'noefi' or 'efi=noruntime', it makes more sense to ignore efi=old_map on mixed mode systems. Currently, we do neither, and try to use the old memory map in combination with mixed mode routines, which results in crashes, so let's fix this by making efi=old_map functional on native systems only. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/x86/platform/uv/bios_uv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/platform/uv/bios_uv.c b/arch/x86/platform/uv/bios_uv.c
index 7c2b8c5d0b49..607f58147311 100644
--- a/arch/x86/platform/uv/bios_uv.c
+++ b/arch/x86/platform/uv/bios_uv.c
@@ -371,7 +371,7 @@ static int __init arch_parse_efi_cmdline(char *str)
return -EINVAL;
}
- if (parse_option_str(str, "old_map"))
+ if (!efi_is_mixed() && parse_option_str(str, "old_map"))
set_bit(EFI_UV1_MEMMAP, &efi.flags);
return 0;