Re: [PATCH] x86/boot: efistub: Assign global boot_params variable

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

 



On Tue, 17 Oct 2023 at 13:34, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
>
> * Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
>
> > On Mon, 16 Oct 2023 at 18:46, Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
> > >
> > > From: Ard Biesheuvel <ardb@xxxxxxxxxx>
> > >
> > > Now that the x86 EFI stub calls into some APIs exposed by the
> > > decompressor (e.g., kaslr_get_random_long()), it is necessary to ensure
> > > that the global boot_params variable is set correctly before doing so.
> > >
> > > Note that the decompressor and the kernel proper carry conflicting
> > > declarations for the global variable 'boot_params' so refer to it via an
> > > alias to work around this.
> > >
> > > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
> > > ---
> > >  drivers/firmware/efi/libstub/x86-stub.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > >
> > > diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c
> > > index 3bfc59637dd1..51407207ded5 100644
> > > --- a/drivers/firmware/efi/libstub/x86-stub.c
> > > +++ b/drivers/firmware/efi/libstub/x86-stub.c
> > > @@ -812,12 +812,15 @@ void __noreturn efi_stub_entry(efi_handle_t handle,
> > >                                efi_system_table_t *sys_table_arg,
> > >                                struct boot_params *boot_params)
> > >  {
> > > +       extern struct boot_params *bpp asm("boot_params");
> >
> > I am getting hatemail from the bots about this extern declaration, so
> > I will move that into x86-stub.h.
>
> Hm, it would be better if we moved all of x86-stub.h into
> arch/x86/include/asm/ or so. We don't really encourage "deep" driver-level
> exports like that, and there's little reason why this couldn't be in the
> x86 headers, right?
>

Yes, there is.

arch/x86/boot/compressed/misc.h:extern struct boot_params *boot_params;
arch/x86/include/asm/setup.h:extern struct boot_params boot_params;

Ideally, we should get rid of the first one.

Happy to send a patch that replaces all conflicting uses in the
decompressor, so we can just access the global pointer without these
tricks. But I'd like to get the fix in for v6.6 in any case.


> > Unless anyone minds, I'll queue this up and send it to Linus myself
> > via the EFI fixes branch.
>
> Other than the above:
>
>   Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
>



[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