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;