Re: [PATCH 4/4] x86, efi: Map runtime services 1:1

From: Matt Fleming
Date: Thu Jun 06 2013 - 09:14:47 EST

On Sun, 02 Jun, at 02:56:10PM, Borislav Petkov wrote:
> From: Borislav Petkov <bp@xxxxxxx>
> Due to the braindead design of EFI, we cannot map runtime services more
> than once for the duration of a booted system. Thus, if we want to use
> EFI runtime services in a kexec'ed kernel, maybe the only possible and
> sensible approach would be to map them 1:1 so that when the kexec kernel
> loads, it can simply call those addresses without the need for remapping
> (which doesn't work anyway).
> Furthermore, this mapping approach could be of help with b0rked EFI
> implementations for a different set of reasons.
> This implementation is 64-bit only for now and it boots fine in kvm with
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> ---
> arch/x86/include/asm/efi.h | 2 +
> arch/x86/platform/efi/efi.c | 161 +++++++++++++++++++++++++++++-------
> arch/x86/platform/efi/efi_stub_64.S | 48 +++++++++++
> 3 files changed, 180 insertions(+), 31 deletions(-)

This patch makes my TunnelMountain machine spin in handle_pte_fault()
when triggering one of the "firmware makes references to physical
addresses" code paths.

I'll try and dig into this tomorrow to figure out what's going on.

Matt Fleming, Intel Open Source Technology Center
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at