diff options
author | Yinghai Lu <yinghai@kernel.org> | 2011-02-18 12:30:30 +0100 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2011-03-19 19:58:19 +0100 |
commit | e5f15b45ddf3afa2bbbb10c7ea34fb32b6de0a0e (patch) | |
tree | 7e47d9bd25670ed0ed34bc572de42c5640454695 /arch/x86/kernel/head64.c | |
parent | x86: Flush TLB if PGD entry is changed in i386 PAE mode (diff) | |
download | linux-e5f15b45ddf3afa2bbbb10c7ea34fb32b6de0a0e.tar.xz linux-e5f15b45ddf3afa2bbbb10c7ea34fb32b6de0a0e.zip |
x86: Cleanup highmap after brk is concluded
Now cleanup_highmap actually is in two steps: one is early in head64.c
and only clears above _end; a second one is in init_memory_mapping() and
tries to clean from _brk_end to _end.
It should check if those boundaries are PMD_SIZE aligned but currently
does not.
Also init_memory_mapping() is called several times for numa or memory
hotplug, so we really should not handle initial kernel mappings there.
This patch moves cleanup_highmap() down after _brk_end is settled so
we can do everything in one step.
Also we honor max_pfn_mapped in the implementation of cleanup_highmap.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
LKML-Reference: <alpine.DEB.2.00.1103171739050.3382@kaball-desktop>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/kernel/head64.c')
-rw-r--r-- | arch/x86/kernel/head64.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index 2d2673c28aff..5655c2272adb 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -77,9 +77,6 @@ void __init x86_64_start_kernel(char * real_mode_data) /* Make NULL pointers segfault */ zap_identity_mappings(); - /* Cleanup the over mapped high alias */ - cleanup_highmap(); - max_pfn_mapped = KERNEL_IMAGE_SIZE >> PAGE_SHIFT; for (i = 0; i < NUM_EXCEPTION_VECTORS; i++) { |