Re: [PATCH 02/16] efi: Get the secure boot status

From: David Howells
Date: Mon Nov 21 2016 - 06:46:58 EST


Lukas Wunner <lukas@xxxxxxxxx> wrote:

> We already have the efi_call_early() macro to call boot services
> in a manner that works across all arches and bitness variants.
>
> In 4.10 there will be an efi_call_proto() macro to allow the same
> for protocol calls:
> http://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit/?h=efi/core&id=3552fdf29f01
>
> I suggest adding an efi_call_runtime() macro for arch- and bitness-
> agnostic runtime services calls, like this:
>
> #define efi_call_runtime(f, ...) \
> __efi_early()->call(efi_table_attr(efi_runtime_services, f, \
> __efi_early()->runtime_services), __VA_ARGS__)
>
> For this to work you need to add a runtime_services attribute to struct
> efi_config, this requires modifying head_32.S and head_64.S, use commit
> 0a637ee61247 ("x86/efi: Allow invocation of arbitrary boot services")
> as a template.
>
> If you define corresponding efi_call_runtime() macros for ARM, you
> should indeed be able to share this function across arches.

I'm not sure why I need to do this if I replace get_secure_boot() from my
patch with a call to efi_get_secureboot().

David