[IA64] Fix section mismatch in contig.c version of per_cpu_init()
authorTony Luck <tony.luck@intel.com>
Tue, 6 Nov 2007 23:14:45 +0000 (15:14 -0800)
committerTony Luck <tony.luck@intel.com>
Tue, 6 Nov 2007 23:14:45 +0000 (15:14 -0800)
commit4b9ddc7cf272a0af321c22ef9c00d76384402d48
tree14b91c54bd8d77e8218ec5df84f5cc5cd469077e
parent4b07ae9b9d7b05a63e3ece32a666041949b7f421
[IA64] Fix section mismatch in contig.c version of per_cpu_init()

There is a section mismatch when building CONFIG_FLATMEM=y kernels
that also have CONFIG_HOTPLUG_CPU=y

WARNING: vmlinux.o(.text+0x5a902): Section mismatch: reference to \
.init.text:__alloc_bootmem (between 'per_cpu_init' and 'count_pages')

The issue occurs because per_cpu_init() in mm/contig.c is
marked __cpuinit (which is #define'd to nothing on a hot
plug cpu configuration) call __alloc_bootmem() (which is
an __init function).  The usage is actually safe because
the __alloc_bootmem() is inside an "if (first_time)" test
so that the call is only made while it is still legal to
do so.

But the warning is irritating.  Move the allocation to
find_memory().

Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/mm/contig.c