Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] i386: modpost smpboot code warning fix

o Currently synchronize_tsc_ap() is of type __init. It is called by
smp_callin() which is of type __cpuinit. So synchronize_tsc_ap()
should be of type __cpuinit.

o Modpost generates warnings for i386 if CONFIG_RELOCATABLE=y and
CONFIG_HOTPLUG_CPU=y

WARNING: vmlinux - Section mismatch: reference to .init.data: from .text between 'start_secondary' (at offset 0xc01164dc) and 'initialize_secondary'
WARNING: vmlinux - Section mismatch: reference to .init.data: from .text between 'start_secondary' (at offset 0xc01164e8) and 'initialize_secondary'

o tsc is of type __initdata. It should be of type __cpuinitdata.

Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Cc: Andi Kleen <ak@suse.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Vivek Goyal and committed by
Linus Torvalds
3771a450 9dbeeec9

+2 -2
+2 -2
arch/i386/kernel/smpboot.c
··· 227 227 atomic_t count_start; 228 228 atomic_t count_stop; 229 229 unsigned long long values[NR_CPUS]; 230 - } tsc __initdata = { 230 + } tsc __cpuinitdata = { 231 231 .start_flag = ATOMIC_INIT(0), 232 232 .count_start = ATOMIC_INIT(0), 233 233 .count_stop = ATOMIC_INIT(0), ··· 332 332 printk("passed.\n"); 333 333 } 334 334 335 - static void __init synchronize_tsc_ap(void) 335 + static void __cpuinit synchronize_tsc_ap(void) 336 336 { 337 337 int i; 338 338