diff options
-rw-r--r-- | arch/x86/mm/init.c | 13 | ||||
-rw-r--r-- | arch/x86/mm/init_32.c | 13 | ||||
-rw-r--r-- | arch/x86/mm/init_64.c | 2 |
3 files changed, 14 insertions, 14 deletions
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index 5bbdfe7459d2..6475693a81ab 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c | |||
@@ -11,17 +11,12 @@ | |||
11 | 11 | ||
12 | #ifdef CONFIG_X86_32 | 12 | #ifdef CONFIG_X86_32 |
13 | extern void __init early_ioremap_page_table_range_init(void); | 13 | extern void __init early_ioremap_page_table_range_init(void); |
14 | extern void __init kernel_physical_mapping_init(unsigned long start_pfn, | ||
15 | unsigned long end_pfn, | ||
16 | int use_pse); | ||
17 | #endif | 14 | #endif |
18 | 15 | ||
19 | #ifdef CONFIG_X86_64 | 16 | extern unsigned long __init |
20 | extern unsigned long __meminit | ||
21 | kernel_physical_mapping_init(unsigned long start, | 17 | kernel_physical_mapping_init(unsigned long start, |
22 | unsigned long end, | 18 | unsigned long end, |
23 | unsigned long page_size_mask); | 19 | unsigned long page_size_mask); |
24 | #endif | ||
25 | 20 | ||
26 | unsigned long __initdata e820_table_start; | 21 | unsigned long __initdata e820_table_start; |
27 | unsigned long __meminitdata e820_table_end; | 22 | unsigned long __meminitdata e820_table_end; |
@@ -301,10 +296,8 @@ unsigned long __init_refok init_memory_mapping(unsigned long start, | |||
301 | 296 | ||
302 | #ifdef CONFIG_X86_32 | 297 | #ifdef CONFIG_X86_32 |
303 | for (i = 0; i < nr_range; i++) | 298 | for (i = 0; i < nr_range; i++) |
304 | kernel_physical_mapping_init( | 299 | kernel_physical_mapping_init(mr[i].start, mr[i].end, |
305 | mr[i].start >> PAGE_SHIFT, | 300 | mr[i].page_size_mask); |
306 | mr[i].end >> PAGE_SHIFT, | ||
307 | mr[i].page_size_mask == (1<<PG_LEVEL_2M)); | ||
308 | ret = end; | 301 | ret = end; |
309 | #else /* CONFIG_X86_64 */ | 302 | #else /* CONFIG_X86_64 */ |
310 | for (i = 0; i < nr_range; i++) | 303 | for (i = 0; i < nr_range; i++) |
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index e9df0d9cdeb6..5ca9c6c3439e 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
@@ -223,10 +223,13 @@ static inline int is_kernel_text(unsigned long addr) | |||
223 | * of max_low_pfn pages, by creating page tables starting from address | 223 | * of max_low_pfn pages, by creating page tables starting from address |
224 | * PAGE_OFFSET: | 224 | * PAGE_OFFSET: |
225 | */ | 225 | */ |
226 | void __init kernel_physical_mapping_init(unsigned long start_pfn, | 226 | unsigned long __init |
227 | unsigned long end_pfn, | 227 | kernel_physical_mapping_init(unsigned long start, |
228 | int use_pse) | 228 | unsigned long end, |
229 | unsigned long page_size_mask) | ||
229 | { | 230 | { |
231 | int use_pse = page_size_mask == (1<<PG_LEVEL_2M); | ||
232 | unsigned long start_pfn, end_pfn; | ||
230 | pgd_t *pgd_base = swapper_pg_dir; | 233 | pgd_t *pgd_base = swapper_pg_dir; |
231 | int pgd_idx, pmd_idx, pte_ofs; | 234 | int pgd_idx, pmd_idx, pte_ofs; |
232 | unsigned long pfn; | 235 | unsigned long pfn; |
@@ -236,6 +239,9 @@ void __init kernel_physical_mapping_init(unsigned long start_pfn, | |||
236 | unsigned pages_2m, pages_4k; | 239 | unsigned pages_2m, pages_4k; |
237 | int mapping_iter; | 240 | int mapping_iter; |
238 | 241 | ||
242 | start_pfn = start >> PAGE_SHIFT; | ||
243 | end_pfn = end >> PAGE_SHIFT; | ||
244 | |||
239 | /* | 245 | /* |
240 | * First iteration will setup identity mapping using large/small pages | 246 | * First iteration will setup identity mapping using large/small pages |
241 | * based on use_pse, with other attributes same as set by | 247 | * based on use_pse, with other attributes same as set by |
@@ -350,6 +356,7 @@ repeat: | |||
350 | mapping_iter = 2; | 356 | mapping_iter = 2; |
351 | goto repeat; | 357 | goto repeat; |
352 | } | 358 | } |
359 | return 0; | ||
353 | } | 360 | } |
354 | 361 | ||
355 | pte_t *kmap_pte; | 362 | pte_t *kmap_pte; |
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index a1d33c58b497..f441ae316312 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -539,7 +539,7 @@ phys_pud_update(pgd_t *pgd, unsigned long addr, unsigned long end, | |||
539 | return phys_pud_init(pud, addr, end, page_size_mask); | 539 | return phys_pud_init(pud, addr, end, page_size_mask); |
540 | } | 540 | } |
541 | 541 | ||
542 | unsigned long __meminit | 542 | unsigned long __init |
543 | kernel_physical_mapping_init(unsigned long start, | 543 | kernel_physical_mapping_init(unsigned long start, |
544 | unsigned long end, | 544 | unsigned long end, |
545 | unsigned long page_size_mask) | 545 | unsigned long page_size_mask) |