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