Skip to content
  • Jiang Liu's avatar
    mm: introduce free_highmem_page() helper to free highmem pages into buddy system · cfa11e08
    Jiang Liu authored
    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.
    
    This patch:
    
    Introduce helper function free_highmem_page(), which will be used by
    architectures with HIGHMEM enabled to free highmem pages into the buddy
    system.
    
    Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: "Suzuki K. Poulose" <suzuki@in.ibm.com>
    Cc: Alexander Graf <agraf@suse.de>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Attilio Rao <attilio.rao@citrix.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Cong Wang <amwang@redhat.com>
    Cc: David Daney <david.daney@cavium.com>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Jeff Dike <jdike@addtoit.com>
    Cc: Jiang Liu <jiang.liu@huawei.com>
    Cc: Jiang Liu <liuj97@gmail.com>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Michal Nazarewicz <mina86@mina86.com>
    Cc: Michal Simek <monstr@monstr.eu>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Stephen Boyd <sboyd@codeaurora.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Reviewed-by: default avatarPekka Enberg <penberg@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    cfa11e08