Re: Kernel V5.7-rc1 doesn't boot (EFI?)

From: Ard Biesheuvel
Date: Tue Apr 14 2020 - 14:32:51 EST


On Tue, 14 Apr 2020 at 20:27, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Apr 14, 2020 at 3:50 AM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
> >
> > [*] GRUB on x86 turns out not to zero initialize BSS when it invokes
> > the EFI stub as a PE/COFF executable
>
> The fix seems to be to put all globals in the .data section, even if
> they don't have initializers.
>
> That seems very fragile. Very easy to forget to not declare some
> static variable with __efistub_global.
>
> Could we not make the EFI stub code zero out the BSS itself? Perhaps
> setting a warning flag (for a later printout) if it wasn't already
> zero, so that people could point fingers are buggy loaders..
>

That is the quick fix, but Arvind is working on getting rid of
__efistub_global entirely, and use the right linker foo to put .bss in
.data. This gives a tiny bit of bloat, but we are talking about a
handful of bools here.