diff options
author | Dave Young <dyoung@redhat.com> | 2014-05-30 11:20:10 +0800 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2014-06-02 12:21:59 +0100 |
commit | a3530e8fe980f756b823d451fe9243f26db95fa5 (patch) | |
tree | 1c6f8efd448bd90c5dd093d8db19057366e6dce0 | |
parent | 34f51147d2e64da842679a97ffcfd17c8a0e6943 (diff) |
x86/efi: Do not export efi runtime map in case old map
For ioremapped efi memory aka old_map the virt addresses are not persistant
across kexec reboot. kexec-tools will read the runtime maps from sysfs then
pass them to 2nd kernel and assuming kexec efi boot is ok. This will cause
kexec boot failure.
To address this issue do not export runtime maps in case efi old_map so
userspace can use no efi boot instead.
Signed-off-by: Dave Young <dyoung@redhat.com>
Acked-by: Borislav Petkov <bp@suse.de>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r-- | arch/x86/platform/efi/efi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 3781dd39e8b..4d36932ca4f 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -919,6 +919,9 @@ static void __init save_runtime_map(void) void *tmp, *p, *q = NULL; int count = 0; + if (efi_enabled(EFI_OLD_MEMMAP)) + return; + for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { md = p; |