diff options
Diffstat (limited to 'arch/x86/mm/init_32.c')
-rw-r--r-- | arch/x86/mm/init_32.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 79cb066f40c0..396e1f0151ac 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
@@ -453,6 +453,21 @@ static inline void permanent_kmaps_init(pgd_t *pgd_base) | |||
453 | } | 453 | } |
454 | #endif /* CONFIG_HIGHMEM */ | 454 | #endif /* CONFIG_HIGHMEM */ |
455 | 455 | ||
456 | void __init sync_initial_page_table(void) | ||
457 | { | ||
458 | clone_pgd_range(initial_page_table + KERNEL_PGD_BOUNDARY, | ||
459 | swapper_pg_dir + KERNEL_PGD_BOUNDARY, | ||
460 | KERNEL_PGD_PTRS); | ||
461 | |||
462 | /* | ||
463 | * sync back low identity map too. It is used for example | ||
464 | * in the 32-bit EFI stub. | ||
465 | */ | ||
466 | clone_pgd_range(initial_page_table, | ||
467 | swapper_pg_dir + KERNEL_PGD_BOUNDARY, | ||
468 | min(KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY)); | ||
469 | } | ||
470 | |||
456 | void __init native_pagetable_init(void) | 471 | void __init native_pagetable_init(void) |
457 | { | 472 | { |
458 | unsigned long pfn, va; | 473 | unsigned long pfn, va; |