Re: [RFC PATCH 1/2] efi: Make 'efi_enabled' a function to

From: Matt Fleming
Date: Tue Jan 08 2013 - 06:01:38 EST


On Sat, 2013-01-05 at 11:28 +0800, Guo Chao wrote:
> query EFI facilities
> Reply-To: <1357219085-4312-2-git-send-email-matt@xxxxxxxxxxxxxxxxx>
> In-Reply-To: <1357219085-4312-2-git-send-email-matt@xxxxxxxxxxxxxxxxx>
>
> > diff --git a/init/main.c b/init/main.c
> > index e33e09d..e71d924 100644
> > --- a/init/main.c
> > +++ b/init/main.c
> > @@ -604,7 +604,7 @@ asmlinkage void __init start_kernel(void)
> > pidmap_init();
> > anon_vma_init();
> > #ifdef CONFIG_X86
> > - if (efi_enabled)
> > + if (efi_enabled(EFI_RUNTIME_SERVICES))
> > efi_enter_virtual_mode();
> > #endif
> > thread_info_cache_init();
> > @@ -632,7 +632,7 @@ asmlinkage void __init start_kernel(void)
> > acpi_early_init(); /* before LAPIC and SMP init */
> > sfi_init_late();
> >
> > - if (efi_enabled) {
> > + if (efi_enabled(EFI_RUNTIME_SERVICES)) {
> > efi_late_init();
> > efi_free_boot_services();
> > }
>
> I just wonder why we compile efi code away explicitly by CONFIG_X86 in
> one place and implicitly by if (0) in another place, in the same
> function.

Because ia64 also has an efi_enter_virtual_mode() implementation, but
that's called internally by arch/ia64.

The setup we've got at the moment isn't ideal, as there's a couple of
oddities like this dotted around the kernel. I have plans to try and
unify the EFI code a bit more based on a patch that Matthew Garrett
wrote, which should allow us to do away with things like the above.

--
Matt Fleming, Intel Open Source Technology Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/