From: Adrian Bunk Fix the following section mismatch with CONFIG_HOTPLUG=n, CONFIG_HOTPLUG_CPU=y: WARNING: vmlinux.o(.text+0x399a6): Section mismatch: reference to .init.text.5:idle_regs (between 'fork_idle' and 'get_task_mm') Signed-off-by: Adrian Bunk Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "Luck, Tony" Signed-off-by: Andrew Morton --- arch/ia64/kernel/smpboot.c | 2 +- arch/x86/kernel/cpu/common.c | 2 +- kernel/fork.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff -puN arch/ia64/kernel/smpboot.c~idle_regs-must-be-__cpuinit arch/ia64/kernel/smpboot.c --- a/arch/ia64/kernel/smpboot.c~idle_regs-must-be-__cpuinit +++ a/arch/ia64/kernel/smpboot.c @@ -476,7 +476,7 @@ start_secondary (void *unused) return 0; } -struct pt_regs * __devinit idle_regs(struct pt_regs *regs) +struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs) { return NULL; } diff -puN arch/x86/kernel/cpu/common.c~idle_regs-must-be-__cpuinit arch/x86/kernel/cpu/common.c --- a/arch/x86/kernel/cpu/common.c~idle_regs-must-be-__cpuinit +++ a/arch/x86/kernel/cpu/common.c @@ -638,7 +638,7 @@ void __init early_cpu_init(void) } /* Make sure %fs is initialized properly in idle threads */ -struct pt_regs * __devinit idle_regs(struct pt_regs *regs) +struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs) { memset(regs, 0, sizeof(struct pt_regs)); regs->fs = __KERNEL_PERCPU; diff -puN kernel/fork.c~idle_regs-must-be-__cpuinit kernel/fork.c --- a/kernel/fork.c~idle_regs-must-be-__cpuinit +++ a/kernel/fork.c @@ -1371,7 +1371,7 @@ fork_out: return ERR_PTR(retval); } -noinline struct pt_regs * __devinit __attribute__((weak)) idle_regs(struct pt_regs *regs) +noinline struct pt_regs * __cpuinit __attribute__((weak)) idle_regs(struct pt_regs *regs) { memset(regs, 0, sizeof(struct pt_regs)); return regs; _