x86: Cleanup highmap after brk is concluded
authorYinghai Lu <yinghai@kernel.org>
Fri, 18 Feb 2011 11:30:30 +0000 (11:30 +0000)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 19 Mar 2011 18:58:19 +0000 (11:58 -0700)
commite5f15b45ddf3afa2bbbb10c7ea34fb32b6de0a0e
tree7e47d9bd25670ed0ed34bc572de42c5640454695
parent4981d01eada5354d81c8929d5b2836829ba3df7b
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>
arch/x86/kernel/head64.c
arch/x86/kernel/setup.c
arch/x86/mm/init_64.c