On Tue, 5 Feb 2019 at 11:34, Ingo Molnar <mingo@xxxxxxxxxx> wrote: > > > * Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: > > > On Mon, 4 Feb 2019 at 21:07, Kammela, Gayatri > > <gayatri.kammela@xxxxxxxxxxxxxxx> 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.