Commit-ID: 4bc9f92e64c81192dcca1c495354bcc7c3b43e7d Gitweb: http://git.kernel.org/tip/4bc9f92e64c81192dcca1c495354bcc7c3b43e7d Author: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx> AuthorDate: Thu, 23 Jun 2016 11:36:32 +0100 Committer: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx> CommitDate: Fri, 9 Sep 2016 16:08:38 +0100 x86/efi-bgrt: Use efi_mem_reserve() to avoid copying image data efi_mem_reserve() allows us to permanently mark EFI boot services regions as reserved, which means we no longer need to copy the image data out and into a separate buffer. Leaving the data in the original boot services region has the added benefit that BGRT images can now be passed across kexec reboot. Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx> Tested-by: Dave Young <dyoung@xxxxxxxxxx> [kexec/kdump] Tested-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> [arm] Acked-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> Cc: Leif Lindholm <leif.lindholm@xxxxxxxxxx> Cc: Peter Jones <pjones@xxxxxxxxxx> Cc: Borislav Petkov <bp@xxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx> Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx> Cc: Môshe van der Sterre <me@xxxxxxxx> Signed-off-by: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx> --- arch/x86/platform/efi/efi-bgrt.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/arch/x86/platform/efi/efi-bgrt.c b/arch/x86/platform/efi/efi-bgrt.c index 6a2f569..6aad870 100644 --- a/arch/x86/platform/efi/efi-bgrt.c +++ b/arch/x86/platform/efi/efi-bgrt.c @@ -82,21 +82,12 @@ void __init efi_bgrt_init(void) } bgrt_image_size = bmp_header.size; - bgrt_image = kmalloc(bgrt_image_size, GFP_KERNEL | __GFP_NOWARN); + bgrt_image = memremap(bgrt_tab->image_address, bmp_header.size, MEMREMAP_WB); if (!bgrt_image) { - pr_notice("Ignoring BGRT: failed to allocate memory for image (wanted %zu bytes)\n", - bgrt_image_size); - return; - } - - image = memremap(bgrt_tab->image_address, bmp_header.size, MEMREMAP_WB); - if (!image) { pr_notice("Ignoring BGRT: failed to map image memory\n"); - kfree(bgrt_image); bgrt_image = NULL; return; } - memcpy(bgrt_image, image, bgrt_image_size); - memunmap(image); + efi_mem_reserve(bgrt_tab->image_address, bgrt_image_size); } -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |