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.

Reply via email to