Skip to content

Commit 47c33a0

Browse files
Sai Praneeth PrakhyaIngo Molnar
authored andcommitted
x86/efi: Move efi_<reserve/free>_boot_services() to arch/x86
efi_<reserve/free>_boot_services() are x86 specific quirks and as such should be in asm/efi.h, so move them from linux/efi.h. Also, call efi_free_boot_services() from __efi_enter_virtual_mode() as it is x86 specific call and ideally shouldn't be part of init/main.c Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by: Thomas Gleixner <tglx@linutronix.de> Cc: Andy Lutomirski <luto@kernel.org> Cc: Arend van Spriel <arend.vanspriel@broadcom.com> Cc: Bhupesh Sharma <bhsharma@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Eric Snowberg <eric.snowberg@oracle.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Joe Perches <joe@perches.com> Cc: Jon Hunter <jonathanh@nvidia.com> Cc: Julien Thierry <julien.thierry@arm.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Matt Fleming <matt@codeblueprint.co.uk> Cc: Nathan Chancellor <natechancellor@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Sedat Dilek <sedat.dilek@gmail.com> Cc: YiFei Zhu <zhuyifei1999@gmail.com> Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20181129171230.18699-7-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 08cfb38 commit 47c33a0

File tree

4 files changed

+4
-7
lines changed

4 files changed

+4
-7
lines changed

arch/x86/include/asm/efi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ extern int __init efi_reuse_config(u64 tables, int nr_tables);
141141
extern void efi_delete_dummy_variable(void);
142142
extern void efi_switch_mm(struct mm_struct *mm);
143143
extern void efi_recover_from_page_fault(unsigned long phys_addr);
144+
extern void efi_free_boot_services(void);
145+
extern void efi_reserve_boot_services(void);
144146

145147
struct efi_setup_data {
146148
u64 fw_vendor;

arch/x86/platform/efi/efi.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,8 @@ static void __init __efi_enter_virtual_mode(void)
993993
panic("EFI call to SetVirtualAddressMap() failed!");
994994
}
995995

996+
efi_free_boot_services();
997+
996998
/*
997999
* Now that EFI is in virtual mode, update the function
9981000
* pointers in the runtime service table to the new virtual addresses.

include/linux/efi.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,13 +1000,11 @@ extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg);
10001000
extern void efi_gettimeofday (struct timespec64 *ts);
10011001
extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */
10021002
#ifdef CONFIG_X86
1003-
extern void efi_free_boot_services(void);
10041003
extern efi_status_t efi_query_variable_store(u32 attributes,
10051004
unsigned long size,
10061005
bool nonblocking);
10071006
extern void efi_find_mirror(void);
10081007
#else
1009-
static inline void efi_free_boot_services(void) {}
10101008

10111009
static inline efi_status_t efi_query_variable_store(u32 attributes,
10121010
unsigned long size,
@@ -1046,7 +1044,6 @@ extern void efi_mem_reserve(phys_addr_t addr, u64 size);
10461044
extern int efi_mem_reserve_persistent(phys_addr_t addr, u64 size);
10471045
extern void efi_initialize_iomem_resources(struct resource *code_resource,
10481046
struct resource *data_resource, struct resource *bss_resource);
1049-
extern void efi_reserve_boot_services(void);
10501047
extern int efi_get_fdt_params(struct efi_fdt_params *params);
10511048
extern struct kobject *efi_kobj;
10521049

init/main.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -737,10 +737,6 @@ asmlinkage __visible void __init start_kernel(void)
737737
arch_post_acpi_subsys_init();
738738
sfi_init_late();
739739

740-
if (efi_enabled(EFI_RUNTIME_SERVICES)) {
741-
efi_free_boot_services();
742-
}
743-
744740
/* Do the rest non-__init'ed, we're now alive */
745741
arch_call_rest_init();
746742
}

0 commit comments

Comments
 (0)