volatile unsigned long cpu_online_map vs unsigned long cpu_online_map
include/asm-ia64/smp.h has 'extern unsigned long cpu_online_map', but arch/ia64/kernel/setup.c and arch/ia64/kernel/smpboot.c have 'volatile unsigned long cpu_online_map'. Which one is correct?
Andreas.
Signature · 5 lines
Andreas Schwab "And now for something SuSE Labs completely different." [email protected] SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Andreas Schwab
Andreas> include/asm-ia64/smp.h has 'extern unsigned long Andreas> cpu_online_map', but arch/ia64/kernel/setup.c and Andreas> arch/ia64/kernel/smpboot.c have 'volatile unsigned long Andreas> cpu_online_map'. Which one is correct?
It should be volatile. Apparently, there were some changes in the gcc3.0 tree shortly before the final release which made gcc more picky (at least I don't recall seeing those messages before). Also, I think there may be a new code generation problem in gcc3.0: the kernel gets stuck in the middle of the boot (after the message "Starting up secondaries"). I'll try to look into this soon, but I'm at Usenix the rest of this week and on vacation right afterwards, so I may not get to it until mid-July. So it looks like gcc3.0 isn't as kernel-ready as I thought it was. Bummer.
--david