|
@@ -724,6 +724,7 @@ static void __init kexec_enter_virtual_mode(void)
|
|
|
*/
|
|
|
if (!efi_is_native()) {
|
|
|
efi_unmap_memmap();
|
|
|
+ clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -797,6 +798,7 @@ static void __init __efi_enter_virtual_mode(void)
|
|
|
new_memmap = efi_map_regions(&count, &pg_shift);
|
|
|
if (!new_memmap) {
|
|
|
pr_err("Error reallocating memory, EFI runtime non-functional!\n");
|
|
|
+ clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -804,8 +806,10 @@ static void __init __efi_enter_virtual_mode(void)
|
|
|
|
|
|
BUG_ON(!efi.systab);
|
|
|
|
|
|
- if (efi_setup_page_tables(__pa(new_memmap), 1 << pg_shift))
|
|
|
+ if (efi_setup_page_tables(__pa(new_memmap), 1 << pg_shift)) {
|
|
|
+ clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
efi_sync_low_kernel_mappings();
|
|
|
efi_dump_pagetable();
|