Re: [GIT PULL 0/9] EFI fixes for v5.7-rc

From: Ard Biesheuvel
Date: Fri Apr 10 2020 - 03:08:30 EST


On Fri, 10 Apr 2020 at 01:57, Theodore Y. Ts'o <tytso@xxxxxxx> wrote:
>
> On Thu, Apr 09, 2020 at 11:29:06PM +0200, Ard Biesheuvel wrote:
> > > What happens is that the kexec'ed kernel immediately crashes, at which
> > > point we drop back into the BIOS, and then it boots the Debain 4.19.0
> > > distro kernel instead of the kernel to be tested boot. Since we lose
> > > the boot command line that was used from the kexec, the gce-xfstests
> > > image retries the kexec, which fails, and the failing kexec repeats
> > > until I manually kill the VM.
> >
> > Does this help at all?
> >
> > diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
> > index 781170d36f50..52f8138243df 100644
> > --- a/arch/x86/include/asm/efi.h
> > +++ b/arch/x86/include/asm/efi.h
> > @@ -180,6 +180,7 @@ extern void __init
> > efi_uv1_memmap_phys_epilog(pgd_t *save_pgd);
> >
> > struct efi_setup_data {
> > u64 fw_vendor;
> > + u64 __unused;
> > u64 tables;
> > u64 smbios;
> > u64 reserved[8];
>
>
> Tested-by: Theodore Ts'o <tytso@xxxxxxx>
>

OK, I'll spin a proper patch

> Yep, that fixed it. Thanks!!
>
> I wonder if this structure definition should be moved something like
> arch/x86/include/uapi/asm/efi.h so it's more obvious that the
> structure layout is used externally to the kernel?
>

Well, 95% of the data structures used by EFI are based on the UEFI
spec, so the base assumption is really that we cannot make changes
like these to begin with. But I'll add a DON'T TOUCH comment here in
any case.