Re: [PATCH 4/6] efi: Get the secure boot status [ver #2]
From: Mark Rutland
Date: Wed Nov 23 2016 - 05:48:47 EST
On Wed, Nov 23, 2016 at 12:22:57AM +0000, David Howells wrote:
> @@ -1158,6 +1158,8 @@ struct boot_params *efi_main(struct efi_config *c,
> else
> setup_boot_services32(efi_early);
>
> + boot_params->secure_boot = (efi_get_secureboot(sys_table) == 1);
In the arm stub's efi_entry(), we fail-safe, and assume secure boot for any
non-zero status (including errors). e.g.
secure_boot = efi_get_secureboot(sys_table);
if (secure_boot > 0)
pr_efi(sys_table, "UEFI Secure Boot is enabled.\n");
if (secure_boot < 0) {
pr_efi_err(sys_table,
"could not determine UEFI Secure Boot status.\n");
}
/*
* Unauthenticated device tree data is a security hazard, so
* ignore 'dtb=' unless UEFI Secure Boot is disabled.
*/
if (secure_boot != 0 && strstr(cmdline_ptr, "dtb=")) {
pr_efi(sys_table, "Ignoring DTB from command line.\n");
... should we not do likewise here, e.g.
int secure_boot = efi_get_secureboot(sys_table);
if (secure_boot > 0)
pr_efi(sys_table, "UEFI Secure Boot is enabled.\n");
if (secure_boot < 0)
pr_efi_err(sys_table,
"could not determine UEFI Secure Boot status.\n");
/*
* Fail-safe in the case of an error determining the secure boot
* status.
*/
boot_params->secure_boot = (secure_boot != 0);
... ?
Thanks,
Mark.