diff options
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r-- | arch/x86/kernel/setup.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index d7d5099fe874..1a2901562059 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -90,7 +90,6 @@ | |||
90 | #include <asm/processor.h> | 90 | #include <asm/processor.h> |
91 | #include <asm/bugs.h> | 91 | #include <asm/bugs.h> |
92 | 92 | ||
93 | #include <asm/system.h> | ||
94 | #include <asm/vsyscall.h> | 93 | #include <asm/vsyscall.h> |
95 | #include <asm/cpu.h> | 94 | #include <asm/cpu.h> |
96 | #include <asm/desc.h> | 95 | #include <asm/desc.h> |
@@ -509,15 +508,6 @@ static void __init memblock_x86_reserve_range_setup_data(void) | |||
509 | 508 | ||
510 | #ifdef CONFIG_KEXEC | 509 | #ifdef CONFIG_KEXEC |
511 | 510 | ||
512 | static inline unsigned long long get_total_mem(void) | ||
513 | { | ||
514 | unsigned long long total; | ||
515 | |||
516 | total = max_pfn - min_low_pfn; | ||
517 | |||
518 | return total << PAGE_SHIFT; | ||
519 | } | ||
520 | |||
521 | /* | 511 | /* |
522 | * Keep the crash kernel below this limit. On 32 bits earlier kernels | 512 | * Keep the crash kernel below this limit. On 32 bits earlier kernels |
523 | * would limit the kernel to the low 512 MiB due to mapping restrictions. | 513 | * would limit the kernel to the low 512 MiB due to mapping restrictions. |
@@ -536,7 +526,7 @@ static void __init reserve_crashkernel(void) | |||
536 | unsigned long long crash_size, crash_base; | 526 | unsigned long long crash_size, crash_base; |
537 | int ret; | 527 | int ret; |
538 | 528 | ||
539 | total_mem = get_total_mem(); | 529 | total_mem = memblock_phys_mem_size(); |
540 | 530 | ||
541 | ret = parse_crashkernel(boot_command_line, total_mem, | 531 | ret = parse_crashkernel(boot_command_line, total_mem, |
542 | &crash_size, &crash_base); | 532 | &crash_size, &crash_base); |
@@ -749,10 +739,16 @@ void __init setup_arch(char **cmdline_p) | |||
749 | #endif | 739 | #endif |
750 | #ifdef CONFIG_EFI | 740 | #ifdef CONFIG_EFI |
751 | if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature, | 741 | if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature, |
752 | EFI_LOADER_SIGNATURE, 4)) { | 742 | "EL32", 4)) { |
743 | efi_enabled = 1; | ||
744 | efi_64bit = false; | ||
745 | } else if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature, | ||
746 | "EL64", 4)) { | ||
753 | efi_enabled = 1; | 747 | efi_enabled = 1; |
754 | efi_memblock_x86_reserve_range(); | 748 | efi_64bit = true; |
755 | } | 749 | } |
750 | if (efi_enabled && efi_memblock_x86_reserve_range()) | ||
751 | efi_enabled = 0; | ||
756 | #endif | 752 | #endif |
757 | 753 | ||
758 | x86_init.oem.arch_setup(); | 754 | x86_init.oem.arch_setup(); |