Make mce initialization not cpuinit This fixes WARNING: vmlinux.o(.text+0x2dba24): Section mismatch: reference to .init.text:mcheck_init (between 'restore_processor_state' and 'save_processor_state') I'm not completely sure if it isn't better to just make CONFIG_PM force __cpuinit on. Should be checked. Signed-off-by: Andi Kleen Index: linux/arch/x86/kernel/cpu/mcheck/mce_64.c =================================================================== --- linux.orig/arch/x86/kernel/cpu/mcheck/mce_64.c +++ linux/arch/x86/kernel/cpu/mcheck/mce_64.c @@ -484,7 +484,7 @@ static void mce_init(void *dummy) } /* Add per CPU specific workarounds here */ -static void __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c) +static void mce_cpu_quirks(struct cpuinfo_x86 *c) { /* This should be disabled by the BIOS, but isn't always */ if (c->x86_vendor == X86_VENDOR_AMD && c->x86 == 15) { @@ -500,7 +500,7 @@ static void __cpuinit mce_cpu_quirks(str bank[0] = 0; } -static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c) +static void mce_cpu_features(struct cpuinfo_x86 *c) { switch (c->x86_vendor) { case X86_VENDOR_INTEL: @@ -518,7 +518,7 @@ static void __cpuinit mce_cpu_features(s * Called for each booted CPU to set up machine checks. * Must be called with preempt off. */ -void __cpuinit mcheck_init(struct cpuinfo_x86 *c) +void mcheck_init(struct cpuinfo_x86 *c) { static cpumask_t mce_cpus = CPU_MASK_NONE; Index: linux/arch/x86/kernel/cpu/mcheck/mce_amd_64.c =================================================================== --- linux.orig/arch/x86/kernel/cpu/mcheck/mce_amd_64.c +++ linux/arch/x86/kernel/cpu/mcheck/mce_amd_64.c @@ -114,7 +114,7 @@ static void threshold_restart_bank(struc } /* cpu init entry point, called from mce.c with preempt off */ -void __cpuinit mce_amd_feature_init(struct cpuinfo_x86 *c) +void mce_amd_feature_init(struct cpuinfo_x86 *c) { unsigned int bank, block; unsigned int cpu = smp_processor_id(); Index: linux/arch/x86/kernel/cpu/mcheck/mce_intel_64.c =================================================================== --- linux.orig/arch/x86/kernel/cpu/mcheck/mce_intel_64.c +++ linux/arch/x86/kernel/cpu/mcheck/mce_intel_64.c @@ -30,7 +30,7 @@ asmlinkage void smp_thermal_interrupt(vo irq_exit(); } -static void __cpuinit intel_init_thermal(struct cpuinfo_x86 *c) +static void intel_init_thermal(struct cpuinfo_x86 *c) { u32 l, h; int tm2 = 0; @@ -84,7 +84,7 @@ static void __cpuinit intel_init_thermal return; } -void __cpuinit mce_intel_feature_init(struct cpuinfo_x86 *c) +void mce_intel_feature_init(struct cpuinfo_x86 *c) { intel_init_thermal(c); }