diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-02 02:55:37 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-03 07:26:29 -0400 |
commit | c8c034ce79418d2143c00c4cf751cfa51701f788 (patch) | |
tree | 1b7a53b01b5ff16ed3c7f35c5cb5bff912d77605 | |
parent | 6af61a7614a306fe882a0c2b4ddc63b65aa66efc (diff) |
x86: clean up max_pfn_mapped usage - 64-bit
on 64-bit we only get valid max_pfn_mapped after init_memory_mapping().
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/e820_64.c | 15 | ||||
-rw-r--r-- | arch/x86/kernel/setup_64.c | 2 |
2 files changed, 4 insertions, 13 deletions
diff --git a/arch/x86/kernel/e820_64.c b/arch/x86/kernel/e820_64.c index 5e063e72b24a..a11bec20f65d 100644 --- a/arch/x86/kernel/e820_64.c +++ b/arch/x86/kernel/e820_64.c | |||
@@ -55,16 +55,12 @@ unsigned long __init e820_end_of_ram(void) | |||
55 | 55 | ||
56 | last_pfn = find_max_pfn_with_active_regions(); | 56 | last_pfn = find_max_pfn_with_active_regions(); |
57 | 57 | ||
58 | if (last_pfn > max_pfn_mapped) | 58 | if (last_pfn > MAXMEM>>PAGE_SHIFT) |
59 | max_pfn_mapped = last_pfn; | 59 | last_pfn = MAXMEM>>PAGE_SHIFT; |
60 | if (max_pfn_mapped > MAXMEM>>PAGE_SHIFT) | ||
61 | max_pfn_mapped = MAXMEM>>PAGE_SHIFT; | ||
62 | if (last_pfn > end_user_pfn) | 60 | if (last_pfn > end_user_pfn) |
63 | last_pfn = end_user_pfn; | 61 | last_pfn = end_user_pfn; |
64 | if (last_pfn > max_pfn_mapped) | ||
65 | last_pfn = max_pfn_mapped; | ||
66 | 62 | ||
67 | printk(KERN_INFO "max_pfn_mapped = %lu\n", max_pfn_mapped); | 63 | printk(KERN_INFO "last_pfn = %lu\n", last_pfn); |
68 | return last_pfn; | 64 | return last_pfn; |
69 | } | 65 | } |
70 | 66 | ||
@@ -109,10 +105,6 @@ static int __init e820_find_active_region(const struct e820entry *ei, | |||
109 | if (*ei_startpfn >= *ei_endpfn) | 105 | if (*ei_startpfn >= *ei_endpfn) |
110 | return 0; | 106 | return 0; |
111 | 107 | ||
112 | /* Check if max_pfn_mapped should be updated */ | ||
113 | if (ei->type != E820_RAM && *ei_endpfn > max_pfn_mapped) | ||
114 | max_pfn_mapped = *ei_endpfn; | ||
115 | |||
116 | /* Skip if map is outside the node */ | 108 | /* Skip if map is outside the node */ |
117 | if (ei->type != E820_RAM || *ei_endpfn <= start_pfn || | 109 | if (ei->type != E820_RAM || *ei_endpfn <= start_pfn || |
118 | *ei_startpfn >= last_pfn) | 110 | *ei_startpfn >= last_pfn) |
@@ -229,7 +221,6 @@ static int __init parse_memmap_opt(char *p) | |||
229 | saved_max_pfn = e820_end_of_ram(); | 221 | saved_max_pfn = e820_end_of_ram(); |
230 | remove_all_active_ranges(); | 222 | remove_all_active_ranges(); |
231 | #endif | 223 | #endif |
232 | max_pfn_mapped = 0; | ||
233 | e820.nr_map = 0; | 224 | e820.nr_map = 0; |
234 | userdef = 1; | 225 | userdef = 1; |
235 | return 0; | 226 | return 0; |
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c index 978a0d637f3f..2599b2744207 100644 --- a/arch/x86/kernel/setup_64.c +++ b/arch/x86/kernel/setup_64.c | |||
@@ -396,7 +396,7 @@ void __init setup_arch(char **cmdline_p) | |||
396 | 396 | ||
397 | check_efer(); | 397 | check_efer(); |
398 | 398 | ||
399 | max_pfn_mapped = init_memory_mapping(0, (max_pfn_mapped << PAGE_SHIFT)); | 399 | max_pfn_mapped = init_memory_mapping(0, (end_pfn << PAGE_SHIFT)); |
400 | if (efi_enabled) | 400 | if (efi_enabled) |
401 | efi_init(); | 401 | efi_init(); |
402 | 402 | ||