From: Vivek Goyal o Some functions which should have been in init sections as they are called only once. Put them in init sections. Otherwise MODPOST generates warning as these functions are placed in .text and they end up accessing something in init sections. WARNING: vmlinux - Section mismatch: reference to .init.text:migration_init from .text between 'do_pre_smp_initcalls' (at offset 0xc01000d1) and 'run_init_process' Signed-off-by: Vivek Goyal Signed-off-by: Andrew Morton --- arch/i386/kernel/setup.c | 2 +- init/main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/setup.c~convert-some-functions-to-__init-to-avoid-modpost-warnings arch/i386/kernel/setup.c --- a/arch/i386/kernel/setup.c~convert-some-functions-to-__init-to-avoid-modpost-warnings +++ a/arch/i386/kernel/setup.c @@ -496,7 +496,7 @@ static void set_mca_bus(int x) { } #endif /* Overridden in paravirt.c if CONFIG_PARAVIRT */ -char * __attribute__((weak)) memory_setup(void) +char * __init __attribute__((weak)) memory_setup(void) { return machine_specific_memory_setup(); } diff -puN init/main.c~convert-some-functions-to-__init-to-avoid-modpost-warnings init/main.c --- a/init/main.c~convert-some-functions-to-__init-to-avoid-modpost-warnings +++ a/init/main.c @@ -703,7 +703,7 @@ static void __init do_basic_setup(void) do_initcalls(); } -static void do_pre_smp_initcalls(void) +static void __init do_pre_smp_initcalls(void) { extern int spawn_ksoftirqd(void); #ifdef CONFIG_SMP _