summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/efi/fake_mem.c
diff options
context:
space:
mode:
authorMatt Fleming <matt@codeblueprint.co.uk>2016-06-22 16:54:00 +0100
committerMatt Fleming <matt@codeblueprint.co.uk>2016-09-09 16:07:47 +0100
commitc45f4da33a297f85435f8dccb26a24852ea01bb9 (patch)
tree3bf0927904747a9b36b57058e1dce31e87f87dab /drivers/firmware/efi/fake_mem.c
parent60863c0d1a96b740048cc7d94a2d00d6f89ba3d8 (diff)
downloadlinux-stable-c45f4da33a297f85435f8dccb26a24852ea01bb9.tar.gz
linux-stable-c45f4da33a297f85435f8dccb26a24852ea01bb9.tar.bz2
linux-stable-c45f4da33a297f85435f8dccb26a24852ea01bb9.zip
efi: Add efi_memmap_install() for installing new EFI memory maps
While efi_memmap_init_{early,late}() exist for architecture code to install memory maps from firmware data and for the virtual memory regions respectively, drivers don't care which stage of the boot we're at and just want to swap the existing memmap for a modified one. efi_memmap_install() abstracts the details of how the new memory map should be mapped and the existing one unmapped. Tested-by: Dave Young <dyoung@redhat.com> [kexec/kdump] Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> [arm] Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Peter Jones <pjones@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Taku Izumi <izumi.taku@jp.fujitsu.com> Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Diffstat (limited to 'drivers/firmware/efi/fake_mem.c')
-rw-r--r--drivers/firmware/efi/fake_mem.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/firmware/efi/fake_mem.c b/drivers/firmware/efi/fake_mem.c
index 0054730f9bae..520a40e5e0e4 100644
--- a/drivers/firmware/efi/fake_mem.c
+++ b/drivers/firmware/efi/fake_mem.c
@@ -52,7 +52,6 @@ static int __init cmp_fake_mem(const void *x1, const void *x2)
void __init efi_fake_memmap(void)
{
- struct efi_memory_map_data data;
int new_nr_map = efi.memmap.nr_map;
efi_memory_desc_t *md;
phys_addr_t new_memmap_phy;
@@ -90,13 +89,8 @@ void __init efi_fake_memmap(void)
/* swap into new EFI memmap */
early_memunmap(new_memmap, efi.memmap.desc_size * new_nr_map);
- efi_memmap_unmap();
- data.phys_map = new_memmap_phy;
- data.size = efi.memmap.desc_size * new_nr_map;
- data.desc_version = efi.memmap.desc_version;
- data.desc_size = efi.memmap.desc_size;
- efi_memmap_init_early(&data);
+ efi_memmap_install(new_memmap_phy, new_nr_map);
/* print new EFI memmap */
efi_print_memmap();