diff options
Diffstat (limited to 'arch/x86/kernel/setup.c')
| -rw-r--r-- | arch/x86/kernel/setup.c | 28 | 
1 files changed, 14 insertions, 14 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 00f6c1472b8..8b24289cc10 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -807,15 +807,15 @@ void __init setup_arch(char **cmdline_p)  #ifdef CONFIG_EFI  	if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature,  		     "EL32", 4)) { -		efi_enabled = 1; -		efi_64bit = false; +		set_bit(EFI_BOOT, &x86_efi_facility);  	} else if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature,  		     "EL64", 4)) { -		efi_enabled = 1; -		efi_64bit = true; +		set_bit(EFI_BOOT, &x86_efi_facility); +		set_bit(EFI_64BIT, &x86_efi_facility);  	} -	if (efi_enabled && efi_memblock_x86_reserve_range()) -		efi_enabled = 0; + +	if (efi_enabled(EFI_BOOT)) +		efi_memblock_x86_reserve_range();  #endif  	x86_init.oem.arch_setup(); @@ -888,7 +888,7 @@ void __init setup_arch(char **cmdline_p)  	finish_e820_parsing(); -	if (efi_enabled) +	if (efi_enabled(EFI_BOOT))  		efi_init();  	dmi_scan_machine(); @@ -971,7 +971,7 @@ void __init setup_arch(char **cmdline_p)  	 * The EFI specification says that boot service code won't be called  	 * after ExitBootServices(). This is, in fact, a lie.  	 */ -	if (efi_enabled) +	if (efi_enabled(EFI_MEMMAP))  		efi_reserve_boot_services();  	/* preallocate 4k for mptable mpc */ @@ -1114,7 +1114,7 @@ void __init setup_arch(char **cmdline_p)  #ifdef CONFIG_VT  #if defined(CONFIG_VGA_CONSOLE) -	if (!efi_enabled || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY)) +	if (!efi_enabled(EFI_BOOT) || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY))  		conswitchp = &vga_con;  #elif defined(CONFIG_DUMMY_CONSOLE)  	conswitchp = &dummy_con; @@ -1131,14 +1131,14 @@ void __init setup_arch(char **cmdline_p)  	register_refined_jiffies(CLOCK_TICK_RATE);  #ifdef CONFIG_EFI -	/* Once setup is done above, disable efi_enabled on mismatched -	 * firmware/kernel archtectures since there is no support for -	 * runtime services. +	/* 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 && IS_ENABLED(CONFIG_X86_64) != efi_64bit) { +	if (efi_enabled(EFI_BOOT) && +	    IS_ENABLED(CONFIG_X86_64) != efi_enabled(EFI_64BIT)) {  		pr_info("efi: Setup done, disabling due to 32/64-bit mismatch\n");  		efi_unmap_memmap(); -		efi_enabled = 0;  	}  #endif  }  |