On Thu, Jun 23, 2016 at 12:34:50PM +0100, Matt Fleming wrote: > 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. > > Cc: 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: Dave Young <dyoung@xxxxxxxxxx> > Cc: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx> > Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx> > Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx> > Cc: Môshe van der Sterre <me@xxxxxxxx> > Signed-off-by: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx> Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx> This definitely seems like an improvement. > 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 6a2f5691b1ab..6aad870e8962 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); > } > -- > 2.7.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html