• Y
    bootmem: Separate out CONFIG_NO_BOOTMEM code into nobootmem.c · 09325873
    Yinghai Lu 提交于
    mm/bootmem.c contained code paths for both bootmem and no bootmem
    configurations.  They implement about the same set of APIs in
    different ways and as a result bootmem.c contains massive amount of
    #ifdef CONFIG_NO_BOOTMEM.
    
    Separate out CONFIG_NO_BOOTMEM code into mm/nobootmem.c.  As the
    common part is relatively small, duplicate them in nobootmem.c instead
    of creating a common file or ifdef'ing in bootmem.c.
    
    The followings are duplicated.
    
    * {min|max}_low_pfn, max_pfn, saved_max_pfn
    * free_bootmem_late()
    * ___alloc_bootmem()
    * __alloc_bootmem_low()
    
    The followings are applicable only to nobootmem and moved verbatim.
    
    * __free_pages_memory()
    * free_all_memory_core_early()
    
    The followings are not applicable to nobootmem and omitted in
    nobootmem.c.
    
    * reserve_bootmem_node()
    * reserve_bootmem()
    
    The rest split function bodies according to CONFIG_NO_BOOTMEM.
    
    Makefile is updated so that only either bootmem.c or nobootmem.c is
    built according to CONFIG_NO_BOOTMEM.
    
    This patch doesn't introduce any behavior change.
    
    -tj: Rewrote commit description.
    Suggested-by: NIngo Molnar <mingo@elte.hu>
    Signed-off-by: NYinghai Lu <yinghai@kernel.org>
    Acked-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NTejun Heo <tj@kernel.org>
    09325873
bootmem.c 20.9 KB