|
@@ -828,9 +828,11 @@ static void __init kexec_enter_virtual_mode(void)
|
|
|
|
|
|
/*
|
|
|
* We don't do virtual mode, since we don't do runtime services, on
|
|
|
- * non-native EFI
|
|
|
+ * non-native EFI. With efi=old_map, we don't do runtime services in
|
|
|
+ * kexec kernel because in the initial boot something else might
|
|
|
+ * have been mapped at these virtual addresses.
|
|
|
*/
|
|
|
- if (!efi_is_native()) {
|
|
|
+ if (!efi_is_native() || efi_enabled(EFI_OLD_MEMMAP)) {
|
|
|
efi_memmap_unmap();
|
|
|
clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
|
|
|
return;
|