projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
912139c
)
x86/kexec: Don't setup EFI info if EFI runtime is not enabled
author
Kairui Song
<
[email protected]
>
Fri, 18 Jan 2019 11:13:08 +0000
(19:13 +0800)
committer
Borislav Petkov
<
[email protected]
>
Fri, 1 Feb 2019 17:18:54 +0000
(18:18 +0100)
Kexec-ing a kernel with "efi=noruntime" on the first kernel's command
line causes the following null pointer dereference:
BUG: unable to handle kernel NULL pointer dereference at
0000000000000000
#PF error: [normal kernel read fault]
Call Trace:
efi_runtime_map_copy+0x28/0x30
bzImage64_load+0x688/0x872
arch_kexec_kernel_image_load+0x6d/0x70
kimage_file_alloc_init+0x13e/0x220
__x64_sys_kexec_file_load+0x144/0x290
do_syscall_64+0x55/0x1a0
entry_SYSCALL_64_after_hwframe+0x44/0xa9
Just skip the EFI info setup if EFI runtime services are not enabled.
[ bp: Massage commit message. ]
Suggested-by: Dave Young <
[email protected]
>
Signed-off-by: Kairui Song <
[email protected]
>
Signed-off-by: Borislav Petkov <
[email protected]
>
Acked-by: Dave Young <
[email protected]
>
Cc: AKASHI Takahiro <
[email protected]
>
Cc: Andrew Morton <
[email protected]
>
Cc: Ard Biesheuvel <
[email protected]
>
Cc:
[email protected]
Cc: David Howells <
[email protected]
>
Cc:
[email protected]
Cc:
[email protected]
Cc: "H. Peter Anvin" <
[email protected]
>
Cc: Ingo Molnar <
[email protected]
>
Cc:
[email protected]
Cc:
[email protected]
Cc:
[email protected]
Cc: Philipp Rudo <
[email protected]
>
Cc:
[email protected]
Cc:
[email protected]
Cc: Thomas Gleixner <
[email protected]
>
Cc: x86-ml <
[email protected]
>
Cc: Yannik Sembritzki <
[email protected]
>
Link:
https://lkml.kernel.org/r/
[email protected]
arch/x86/kernel/kexec-bzimage64.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/kexec-bzimage64.c
b/arch/x86/kernel/kexec-bzimage64.c
index 0d5efa34f35966f0b272797f737252ed8bdb23a6..53917a3ebf949632b33617482549265cd08c6ceb 100644
(file)
--- a/
arch/x86/kernel/kexec-bzimage64.c
+++ b/
arch/x86/kernel/kexec-bzimage64.c
@@
-167,6
+167,9
@@
setup_efi_state(struct boot_params *params, unsigned long params_load_addr,
struct efi_info *current_ei = &boot_params.efi_info;
struct efi_info *ei = ¶ms->efi_info;
+ if (!efi_enabled(EFI_RUNTIME_SERVICES))
+ return 0;
+
if (!current_ei->efi_memmap_size)
return 0;