The original goal of this patchset is to fix the bug reported by https://bugzilla.kernel.org/show_bug.cgi?id=53501 Now it has also been expanded to reduce common code used by memory initializion. This is the second part, which applies to the previous part at: http://marc.info/?l=linux-mm&m=136289696323825&w=2 It introduces a helper function free_highmem_page() to free highmem pages into the buddy system when initializing mm subsystem. Introduction of free_highmem_page() is one step forward to clean up accesses and modificaitons of totalhigh_pages, totalram_pages and zone->managed_pages etc. I hope we could remove all references to totalhigh_pages from the arch/ subdirectory. We have only tested these patchset on x86 platforms, and have done basic compliation tests using cross-compilers from ftp.kernel.org. That means some code may not pass compilation on some architectures. So any help to test this patchset are welcomed! There are several other parts still under development: Part3: refine code to manage totalram_pages, totalhigh_pages and zone->managed_pages Part4: introduce helper functions to simplify mem_init() and remove the global variable num_physpages. Jiang Liu (10): mm: introduce free_highmem_page() helper to free highmem pages into buddy system mm/ARM: use free_highmem_page() to free highmem pages into buddy system mm/FRV: use free_highmem_page() to free highmem pages into buddy system mm/metag: use free_highmem_page() to free highmem pages into buddy system mm/microblaze: use free_highmem_page() to free highmem pages into buddy system mm/MIPS: use free_highmem_page() to free highmem pages into buddy system mm/PPC: use free_highmem_page() to free highmem pages into buddy system mm/SPARC: use free_highmem_page() to free highmem pages into buddy system mm/um: use free_highmem_page() to free highmem pages into buddy system mm/x86: use free_highmem_page() to free highmem pages into buddy system arch/arm/mm/init.c | 7 ++----- arch/frv/mm/init.c | 6 ++---- arch/metag/mm/init.c | 10 ++-------- arch/microblaze/mm/init.c | 6 +----- arch/mips/mm/init.c | 6 +----- arch/powerpc/mm/mem.c | 6 +----- arch/sparc/mm/init_32.c | 12 ++---------- arch/um/kernel/mem.c | 16 +++------------- arch/x86/mm/highmem_32.c | 1 - arch/x86/mm/init_32.c | 10 +--------- include/linux/mm.h | 7 +++++++ mm/page_alloc.c | 9 +++++++++ 12 files changed, 31 insertions(+), 65 deletions(-) -- 1.7.9.5 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>