aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/e820.c
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-07-13 01:57:07 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-13 02:19:40 -0400
commit7b479becdb8c1fb4ff6fbb2a4076c471c737b54c (patch)
tree3a2ca9a72e50d06abc4af4e78204c5b49ad4848c /arch/x86/kernel/e820.c
parent9958e810f8ac92f8a447035ee6555420ba27b847 (diff)
x86, e820: remove end_user_pfn
end_user_pfn used to modify the meaning of the e820 maps. Now that all e820 operations are cleaned up, unified, tightened up, the e820 map always get updated to reality, we don't need to keep this secondary mechanism anymore. If you hit this commit in bisection it means something slipped through. Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/e820.c')
-rw-r--r--arch/x86/kernel/e820.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index a5383ae2cbe3..28c29180b380 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -1049,11 +1049,6 @@ u64 __init early_reserve_e820(u64 startt, u64 sizet, u64 align)
1049#endif 1049#endif
1050 1050
1051/* 1051/*
1052 * Last pfn which the user wants to use.
1053 */
1054unsigned long __initdata end_user_pfn = MAX_ARCH_PFN;
1055
1056/*
1057 * Find the highest page frame number we have available 1052 * Find the highest page frame number we have available
1058 */ 1053 */
1059static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) 1054static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type)
@@ -1085,8 +1080,6 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type)
1085 1080
1086 if (last_pfn > max_arch_pfn) 1081 if (last_pfn > max_arch_pfn)
1087 last_pfn = max_arch_pfn; 1082 last_pfn = max_arch_pfn;
1088 if (last_pfn > end_user_pfn)
1089 last_pfn = end_user_pfn;
1090 1083
1091 printk(KERN_INFO "last_pfn = %#lx max_arch_pfn = %#lx\n", 1084 printk(KERN_INFO "last_pfn = %#lx max_arch_pfn = %#lx\n",
1092 last_pfn, max_arch_pfn); 1085 last_pfn, max_arch_pfn);
@@ -1131,12 +1124,6 @@ int __init e820_find_active_region(const struct e820entry *ei,
1131 if (*ei_endpfn > last_pfn) 1124 if (*ei_endpfn > last_pfn)
1132 *ei_endpfn = last_pfn; 1125 *ei_endpfn = last_pfn;
1133 1126
1134 /* Obey end_user_pfn to save on memmap */
1135 if (*ei_startpfn >= end_user_pfn)
1136 return 0;
1137 if (*ei_endpfn > end_user_pfn)
1138 *ei_endpfn = end_user_pfn;
1139
1140 return 1; 1127 return 1;
1141} 1128}
1142 1129
@@ -1201,7 +1188,6 @@ static int __init parse_memopt(char *p)
1201 1188
1202 userdef = 1; 1189 userdef = 1;
1203 mem_size = memparse(p, &p); 1190 mem_size = memparse(p, &p);
1204 end_user_pfn = mem_size>>PAGE_SHIFT;
1205 e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1); 1191 e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1);
1206 1192
1207 return 0; 1193 return 0;
@@ -1245,10 +1231,9 @@ static int __init parse_memmap_opt(char *p)
1245 } else if (*p == '$') { 1231 } else if (*p == '$') {
1246 start_at = memparse(p+1, &p); 1232 start_at = memparse(p+1, &p);
1247 e820_add_region(start_at, mem_size, E820_RESERVED); 1233 e820_add_region(start_at, mem_size, E820_RESERVED);
1248 } else { 1234 } else
1249 end_user_pfn = (mem_size >> PAGE_SHIFT);
1250 e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1); 1235 e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1);
1251 } 1236
1252 return *p == '\0' ? 0 : -EINVAL; 1237 return *p == '\0' ? 0 : -EINVAL;
1253} 1238}
1254early_param("memmap", parse_memmap_opt); 1239early_param("memmap", parse_memmap_opt);