Blame kexec-uefi-copy-secure_boot-flag-in-boot-params.patch
|
Dave Young |
eca4cec |
From: Dave Young <dyoung@redhat.com>
|
|
Dave Young |
eca4cec |
|
|
Dave Young |
eca4cec |
[PATCH] kexec/uefi: copy secure_boot flag in boot params across kexec reboot
|
|
Dave Young |
eca4cec |
|
|
Dave Young |
eca4cec |
Kexec reboot in case secure boot being enabled does not keep the secure boot
|
|
Dave Young |
eca4cec |
mode in new kernel, so later one can load unsigned kernel via legacy kexec_load.
|
|
Dave Young |
eca4cec |
In this state, the system is missing the protections provided by secure boot.
|
|
Dave Young |
eca4cec |
|
|
Dave Young |
eca4cec |
Adding a patch to fix this by retain the secure_boot flag in original kernel.
|
|
Dave Young |
eca4cec |
|
|
Dave Young |
eca4cec |
secure_boot flag in boot_params is set in EFI stub, but kexec bypasses the stub.
|
|
Dave Young |
eca4cec |
Fixing this issue by copying secure_boot flag across kexec reboot.
|
|
Dave Young |
eca4cec |
|
|
Dave Young |
eca4cec |
Signed-off-by: Dave Young <dyoung@redhat.com>
|
|
Dave Young |
eca4cec |
---
|
|
Dave Young |
eca4cec |
arch/x86/kernel/kexec-bzimage64.c | 1 +
|
|
Dave Young |
eca4cec |
1 file changed, 1 insertion(+)
|
|
Dave Young |
eca4cec |
|
|
Dave Young |
eca4cec |
diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c
|
|
Dave Young |
eca4cec |
index 9642b9b..0539ec7 100644
|
|
Dave Young |
eca4cec |
--- a/arch/x86/kernel/kexec-bzimage64.c
|
|
Dave Young |
eca4cec |
+++ b/arch/x86/kernel/kexec-bzimage64.c
|
|
Dave Young |
eca4cec |
@@ -178,6 +178,7 @@ setup_efi_state(struct boot_params *params, unsigned long params_load_addr,
|
|
Dave Young |
eca4cec |
if (efi_enabled(EFI_OLD_MEMMAP))
|
|
Dave Young |
eca4cec |
return 0;
|
|
Dave Young |
eca4cec |
|
|
Dave Young |
eca4cec |
+ params->secure_boot = boot_params.secure_boot;
|
|
Dave Young |
eca4cec |
ei->efi_loader_signature = current_ei->efi_loader_signature;
|
|
Dave Young |
eca4cec |
ei->efi_systab = current_ei->efi_systab;
|
|
Dave Young |
eca4cec |
ei->efi_systab_hi = current_ei->efi_systab_hi;
|