[PATCH v2 13/15] arm64: add EFI runtime services

Catalin Marinas catalin.marinas at arm.com
Tue Mar 18 13:36:20 EDT 2014


On Tue, Mar 18, 2014 at 02:16:49PM +0000, Mark Salter wrote:
> On Tue, 2014-03-18 at 12:34 +0000, Catalin Marinas wrote:
> > On Thu, Mar 13, 2014 at 10:47:06PM +0000, Leif Lindholm wrote:
> > > --- /dev/null
> > > +++ b/arch/arm64/kernel/efi.c
> > [...]
> > > +/*
> > > + * Called from setup_arch with interrupts disabled.
> > > + */
> > > +void __init efi_enter_virtual_mode(void)
> > [...]
> > > --- a/init/main.c
> > > +++ b/init/main.c
> > > @@ -902,6 +902,10 @@ static noinline void __init kernel_init_freeable(void)
> > >         smp_prepare_cpus(setup_max_cpus);
> > > 
> > >         do_pre_smp_initcalls();
> > > +
> > > +       if (IS_ENABLED(CONFIG_ARM64) && efi_enabled(EFI_BOOT))
> > > +               efi_enter_virtual_mode();
> > 
> > The comment for the efi_enter_virtual_mode() function says "called from
> > setup_arch with interrupts disabled". None of these are true for the
> > call above (and I would really prefer an arch call than this arm64
> > conditional call in init/main.c.
> > 
> 
> Right, the call changed to later in boot but the comment didn't. Calling
> from setup_arch is too early. But an early_initcall would work and would
> get rid of the ugly CONFIG_ARM64 test.

I agree, early_initcall() is better.

-- 
Catalin



More information about the linux-arm-kernel mailing list