[PATCH] generic: Break init() in two parts to avoid MODPOST warnings
commitee5bfa642a0d4b0f6ec6200bf96e5e647f93fcdb
authorVivek Goyal <vgoyal@in.ibm.com>
Tue, 13 Feb 2007 12:26:22 +0000 (13 13:26 +0100)
committerAndi Kleen <andi@basil.nowhere.org>
Tue, 13 Feb 2007 12:26:22 +0000 (13 13:26 +0100)
treeed348c3f5d940b211919bc5191cfea5ea1b5a6fa
parentf8657e1b55901e6c227094258d1fa3642fa242bd
[PATCH] generic: Break init() in two parts to avoid MODPOST warnings

o init() is a non __init function in .text section but it calls many
  functions which are in .init.text section. Hence MODPOST generates lots
  of cross reference warnings on i386 if compiled with CONFIG_RELOCATABLE=y

WARNING: vmlinux - Section mismatch: reference to .init.text:smp_prepare_cpus from .text between 'init' (at offset 0xc0101049) and 'rest_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:migration_init from .text between 'init' (at offset 0xc010104e) and 'rest_init'
WARNING: vmlinux - Section mismatch: reference to .init.text:spawn_ksoftirqd from .text between 'init' (at offset 0xc0101053) and 'rest_init'

o This patch breaks down init() in two parts. One part which can go
  in .init.text section and can be freed and other part which has to
  be non __init(init_post()). Now init() calls init_post() and init_post()
  does not call any functions present in .init sections. Hence getting
  rid of warnings.

Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
init/main.c