On Tue, 5 Feb 2019 at 11:34, Ingo Molnar <[email protected]> wrote:
>
>
> * Ard Biesheuvel <[email protected]> wrote:
>
> > On Mon, 4 Feb 2019 at 21:07, Kammela, Gayatri
> > <[email protected]> wrote:
> > >
> > > Hi Ard,
> > >
> > >
> > > I have come across an issue where i could not boot kernel  on x86_64 qemu 
> > >  when applied this commit 4543fea0423b221d6 ("acpi: bgrt: parse BGRT to 
> > > obtain BMP address before it gets clobbered") . The issue is reproducible 
> > > with x86_64_defconfig if the configuration option "CONFIG_ACPI_BGRT" is 
> > > enabled. I am looking in to it and it may take some time for me but the 
> > > issue is triggered with the function 
> > > ("efi_mem_reserve(bgrt->image_address, bgrt_image_size);") added in the 
> > > commit 7b0a911478c74ca (" efi/x86: Move the EFI BGRT init code to early 
> > > init code").  I just observed that this patch made it to the tip tree.
> > >
> > >
> >
> > Thanks, Gayatri, for the report.
> >
> > I can confirm this locally, with QEMU. Apologies for not spotting this
> > before - my kernelci boot tests on x86 failed to trigger it.
> >
> > Ingo, could you please either revert this patch, or just drop it from
> > the top of the efi/core branch? I will follow up in more detail later,
> > but it may take me until early next week.
>
> Sure, I've dropped it.
>
> The patch did look a bit dangerous to me too, but it also fixed a real
> bug. If you don't find the root cause of the regression then could we try
> introducing the concept in smaller increments, spread out over 2-5
> patches, to the extent this is possible?
>

The BGRT handling code simply calls efi_arch_memreserve() too early on
x86, as it invokes memblock_alloc() at a time when there is no memory
registered with memblock yet.

So it appears we'll need a special case for x86, which means I will
need to move the call to efi_bgrt_init() out of
efi_config_parse_tables(), and into arch specific code.

The reason I did not spot this is because I failed to realise that the
x86 defconfig does not enable CONFIG_ACPI_BGRT, and so the automated
boot tests I did never invoked this code path.

Reply via email to