Re: [PATCH] x86/efi: skip bgrt init for kexec reboot

From: Matt Fleming
Date: Wed Feb 03 2016 - 17:53:49 EST


On Thu, 04 Feb, at 05:42:00AM, Dave Young wrote:
>
> On 01/27/16 at 07:20pm, Dave Young wrote:
> > For kexec reboot the bgrt image address could contains random data because
> > we have freed boot service areas in 1st kernel boot phase. One possible
> > result is kmalloc fail in efi_bgrt_init due to large random image size.
> >
> > So change efi_late_init to avoid efi_bgrt_init in case kexec boot.
> >
> > Signed-off-by: Dave Young <dyoung@xxxxxxxxxx>
> > ---
> > arch/x86/platform/efi/efi.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > --- linux-x86.orig/arch/x86/platform/efi/efi.c
> > +++ linux-x86/arch/x86/platform/efi/efi.c
> > @@ -531,7 +531,8 @@ void __init efi_init(void)
> >
> > void __init efi_late_init(void)
> > {
> > - efi_bgrt_init();
> > + if (!efi_setup)
> > + efi_bgrt_init();
> > }
> >
> > void __init efi_set_executable(efi_memory_desc_t *md, bool executable)
>
> Matt, opinions about this patch?

Yeah, I'm not happy seeing efi_setup escaping into even more places,
nor am I happy to see more code paths introduced where kexec boot is
special-cased.

I'll reply with more details tomorrow.