x86_64: initialize this_cpu_off to __per_cpu_load
authorTejun Heo <tj@kernel.org>
Fri, 16 Jan 2009 03:11:43 +0000 (12:11 +0900)
committerIngo Molnar <mingo@elte.hu>
Fri, 16 Jan 2009 13:20:58 +0000 (14:20 +0100)
On x86_64, if get_per_cpu_var() is used before per cpu area is setup
(if lockdep is turned on, it happens), it needs this_cpu_off to point
to __per_cpu_load.  Initialize accordingly.

Signed-off-by: Tejun Heo <tj@kernel.org>
arch/x86/kernel/smpcommon.c

index 84395fabc410c9348f1e192ba1dfc1127b1fce30..7e157810062f18e162e8ecb644e231aba455420d 100644 (file)
@@ -3,8 +3,13 @@
  */
 #include <linux/module.h>
 #include <asm/smp.h>
+#include <asm/sections.h>
 
+#ifdef CONFIG_X86_64
+DEFINE_PER_CPU(unsigned long, this_cpu_off) = (unsigned long)__per_cpu_load;
+#else
 DEFINE_PER_CPU(unsigned long, this_cpu_off);
+#endif
 EXPORT_PER_CPU_SYMBOL(this_cpu_off);
 
 #ifdef CONFIG_X86_32