aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 6fd7752cee96..ca45696f30fb 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -920,8 +920,22 @@ void __init setup_arch(char **cmdline_p)
920 920
921#ifdef CONFIG_X86_64 921#ifdef CONFIG_X86_64
922 if (max_pfn > max_low_pfn) { 922 if (max_pfn > max_low_pfn) {
923 max_pfn_mapped = init_memory_mapping(1UL<<32, 923 int i;
924 max_pfn<<PAGE_SHIFT); 924 unsigned long start, end;
925 unsigned long start_pfn, end_pfn;
926
927 for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn,
928 NULL) {
929
930 end = PFN_PHYS(end_pfn);
931 if (end <= (1UL<<32))
932 continue;
933
934 start = PFN_PHYS(start_pfn);
935 max_pfn_mapped = init_memory_mapping(
936 max((1UL<<32), start), end);
937 }
938
925 /* can we preseve max_low_pfn ?*/ 939 /* can we preseve max_low_pfn ?*/
926 max_low_pfn = max_pfn; 940 max_low_pfn = max_pfn;
927 } 941 }