Loading arch/x86/include/asm/efi.h +1 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ extern void efi_setup_page_tables(void); extern void __init old_map_region(efi_memory_desc_t *md); extern void __init runtime_code_page_mkexec(void); extern void __init efi_runtime_mkexec(void); extern void __init efi_apply_memmap_quirks(void); struct efi_setup_data { u64 fw_vendor; Loading arch/x86/kernel/setup.c +2 −8 Original line number Diff line number Diff line Loading @@ -1239,14 +1239,8 @@ void __init setup_arch(char **cmdline_p) register_refined_jiffies(CLOCK_TICK_RATE); #ifdef CONFIG_EFI /* Once setup is done above, unmap the EFI memory map on * mismatched firmware/kernel archtectures since there is no * support for runtime services. */ if (efi_enabled(EFI_BOOT) && !efi_is_native()) { pr_info("efi: Setup done, disabling due to 32/64-bit mismatch\n"); efi_unmap_memmap(); } if (efi_enabled(EFI_BOOT)) efi_apply_memmap_quirks(); #endif } Loading arch/x86/platform/efi/efi.c +20 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ #include <asm/tlbflush.h> #include <asm/x86_init.h> #include <asm/rtc.h> #include <asm/uv/uv.h> #define EFI_DEBUG Loading Loading @@ -1210,3 +1211,22 @@ static int __init parse_efi_cmdline(char *str) return 0; } early_param("efi", parse_efi_cmdline); void __init efi_apply_memmap_quirks(void) { /* * Once setup is done earlier, unmap the EFI memory map on mismatched * firmware/kernel architectures since there is no support for runtime * services. */ if (!efi_is_native()) { pr_info("efi: Setup done, disabling due to 32/64-bit mismatch\n"); efi_unmap_memmap(); } /* * UV doesn't support the new EFI pagetable mapping yet. */ if (is_uv_system()) set_bit(EFI_OLD_MEMMAP, &x86_efi_facility); } Loading
arch/x86/include/asm/efi.h +1 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ extern void efi_setup_page_tables(void); extern void __init old_map_region(efi_memory_desc_t *md); extern void __init runtime_code_page_mkexec(void); extern void __init efi_runtime_mkexec(void); extern void __init efi_apply_memmap_quirks(void); struct efi_setup_data { u64 fw_vendor; Loading
arch/x86/kernel/setup.c +2 −8 Original line number Diff line number Diff line Loading @@ -1239,14 +1239,8 @@ void __init setup_arch(char **cmdline_p) register_refined_jiffies(CLOCK_TICK_RATE); #ifdef CONFIG_EFI /* Once setup is done above, unmap the EFI memory map on * mismatched firmware/kernel archtectures since there is no * support for runtime services. */ if (efi_enabled(EFI_BOOT) && !efi_is_native()) { pr_info("efi: Setup done, disabling due to 32/64-bit mismatch\n"); efi_unmap_memmap(); } if (efi_enabled(EFI_BOOT)) efi_apply_memmap_quirks(); #endif } Loading
arch/x86/platform/efi/efi.c +20 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ #include <asm/tlbflush.h> #include <asm/x86_init.h> #include <asm/rtc.h> #include <asm/uv/uv.h> #define EFI_DEBUG Loading Loading @@ -1210,3 +1211,22 @@ static int __init parse_efi_cmdline(char *str) return 0; } early_param("efi", parse_efi_cmdline); void __init efi_apply_memmap_quirks(void) { /* * Once setup is done earlier, unmap the EFI memory map on mismatched * firmware/kernel architectures since there is no support for runtime * services. */ if (!efi_is_native()) { pr_info("efi: Setup done, disabling due to 32/64-bit mismatch\n"); efi_unmap_memmap(); } /* * UV doesn't support the new EFI pagetable mapping yet. */ if (is_uv_system()) set_bit(EFI_OLD_MEMMAP, &x86_efi_facility); }