Re: x86 kernel does not boot with this commit 4543fea0423b221d6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux