aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2011-12-16 01:39:20 -0500
committerSteve French <sfrench@us.ibm.com>2011-12-16 01:39:20 -0500
commitaaf015890754d58dcb71a4aa44ed246bb082bcf6 (patch)
tree17b51ff707fd1b3efec3a3ab872f0d7a7416aca5 /arch/x86/kernel/setup.c
parent9c32c63bb70b2fafc3b18bee29959c3bf245ceba (diff)
parent8def5f51b012efb00e77ba2d04696cc0aadd0609 (diff)
Merge branch 'master' of git+ssh://git.samba.org/data/git/sfrench/cifs-2.6
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index afaf38447ef5..9a9e40fb091c 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -691,6 +691,8 @@ early_param("reservelow", parse_reservelow);
691 691
692void __init setup_arch(char **cmdline_p) 692void __init setup_arch(char **cmdline_p)
693{ 693{
694 unsigned long end_pfn;
695
694#ifdef CONFIG_X86_32 696#ifdef CONFIG_X86_32
695 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); 697 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));
696 visws_early_detect(); 698 visws_early_detect();
@@ -932,7 +934,24 @@ void __init setup_arch(char **cmdline_p)
932 init_gbpages(); 934 init_gbpages();
933 935
934 /* max_pfn_mapped is updated here */ 936 /* max_pfn_mapped is updated here */
935 max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT); 937 end_pfn = max_low_pfn;
938
939#ifdef CONFIG_X86_64
940 /*
941 * There may be regions after the last E820_RAM region that we
942 * want to include in the kernel direct mapping, such as
943 * EFI_RUNTIME_SERVICES_DATA.
944 */
945 if (efi_enabled) {
946 unsigned long efi_end;
947
948 efi_end = e820_end_pfn(MAXMEM>>PAGE_SHIFT, E820_RESERVED_EFI);
949 if (efi_end > max_low_pfn)
950 end_pfn = efi_end;
951 }
952#endif
953
954 max_low_pfn_mapped = init_memory_mapping(0, end_pfn << PAGE_SHIFT);
936 max_pfn_mapped = max_low_pfn_mapped; 955 max_pfn_mapped = max_low_pfn_mapped;
937 956
938#ifdef CONFIG_X86_64 957#ifdef CONFIG_X86_64
@@ -1045,6 +1064,8 @@ void __init setup_arch(char **cmdline_p)
1045 1064
1046 x86_init.timers.wallclock_init(); 1065 x86_init.timers.wallclock_init();
1047 1066
1067 x86_platform.wallclock_init();
1068
1048 mcheck_init(); 1069 mcheck_init();
1049 1070
1050 arch_init_ideal_nops(); 1071 arch_init_ideal_nops();