On Wed, Jun 27, 2012 at 2:52 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:On 06/27/2012 02:35 PM, Olof Johansson wrote:
This adds an efi_runtime variable indicating whether the
efi runtime services are available. The only time they are
expected to not be available is when a 32-bit kernel has been
booted using 64-but EFI and vice versa.
It also adds checking to the two locations where functions are
called; x86 reboot and efivars.
OK, stupid question:
Why is this different from the efi_enabled variable, or rather: why is it
different from what the efi_enabled variable *should* be? If runtime
services aren't available the only "EFI" that is available to the kernel are
the data structures passed in, and those can be checked directly...
Excellent question, and I think it would work to turn off efi_enabled
towards the end of setup_arch() for non-native boots. That'd solve all
these problems, I believe.
I'll try it out and revise this patch. It might take me a day or two
to get cycles for it.