summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Young <dyoung@redhat.com>2014-05-30 11:20:10 +0800
committerMatt Fleming <matt.fleming@intel.com>2014-06-02 12:21:59 +0100
commita3530e8fe980f756b823d451fe9243f26db95fa5 (patch)
tree1c6f8efd448bd90c5dd093d8db19057366e6dce0
parent34f51147d2e64da842679a97ffcfd17c8a0e6943 (diff)
downloadlinux-stable-a3530e8fe980f756b823d451fe9243f26db95fa5.tar.gz
linux-stable-a3530e8fe980f756b823d451fe9243f26db95fa5.tar.bz2
linux-stable-a3530e8fe980f756b823d451fe9243f26db95fa5.zip
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.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 3781dd39e8bd..4d36932ca4f2 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;