Re: [PATCH] Map in physical addresses in efi_map_region_fixed

From: Matt Fleming
Date: Mon Aug 15 2016 - 08:43:05 EST


(Cc'ing Boris and Dave)

On Fri, 05 Aug, at 06:59:35PM, Alex Thorlton wrote:
> This is a simple change to add in the physical mappings as well as the
> virtual mappings in efi_map_region_fixed. The motivation here is to
> get access to EFI runtime code that is only available via the 1:1
> mappings on a kexec'd kernel.
>
> The added call is essentially the kexec analog of the first __map_region
> that Boris put in efi_map_region in commit d2f7cbe7b26a ("x86/efi:
> Runtime services virtual mapping").
>
> Signed-off-by: Alex Thorlton <athorlton@xxxxxxx>
> Cc: Russ Anderson <rja@xxxxxxx>
> Cc: Dimitri Sivanich <sivanich@xxxxxxx>
> Cc: Mike Travis <travis@xxxxxxx>
> Cc: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: linux-efi@xxxxxxxxxxxxxxx
> ---
> arch/x86/platform/efi/efi_64.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
> index 459bcbb..b206126 100644
> --- a/arch/x86/platform/efi/efi_64.c
> +++ b/arch/x86/platform/efi/efi_64.c
> @@ -363,6 +363,7 @@ void __init efi_map_region(efi_memory_desc_t *md)
> */
> void __init efi_map_region_fixed(efi_memory_desc_t *md)
> {
> + __map_region(md, md->phys_addr);
> __map_region(md, md->virt_addr);
> }
>

This looks fine to me. I'm going to run it through my tests and unless
anyone complains, apply it for v4.9.