bootmem: Separate out CONFIG_NO_BOOTMEM code into nobootmem.c
authorYinghai Lu <yinghai@kernel.org>
Thu, 24 Feb 2011 13:43:05 +0000 (14:43 +0100)
committerTejun Heo <tj@kernel.org>
Thu, 24 Feb 2011 13:43:05 +0000 (14:43 +0100)
commit0932587328d9bd5b500a640fbaff3290c8d4cabf
tree7c041a41db88f7bb6d98f2a69e21a33a311b469f
parent2bf50555b0920be7e29d3823f6bbd20ee5920489
bootmem: Separate out CONFIG_NO_BOOTMEM code into nobootmem.c

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: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
mm/Makefile
mm/bootmem.c
mm/nobootmem.c [new file with mode: 0644]