From 231b8c5bc149824cdca6c54154d08dfd30536da4 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 3 Jul 2009 08:44:39 -0500
Subject: [PATCH] cpu-hotplug: get_cpu_var_locked online aware

commit 849ac1ba25f218b94876174bc77c25403420d768 in tip.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index 9dda3e3..ea3dfff 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -43,14 +43,36 @@
  * same as the normal per-CPU variables, so there is no runtime
  * overhead.
  */
+#ifdef CONFIG_PREEMPT_RT
 #define get_cpu_var_locked(var, cpuptr)			\
 (*({							\
-	int __cpu = raw_smp_processor_id();		\
+	spinlock_t *__lock;				\
+	int __cpu;					\
 							\
+again:							\
+	__cpu = raw_smp_processor_id();			\
+	__lock = &__get_cpu_lock(var, __cpu);		\
+	spin_lock(__lock);				\
+	if (!cpu_online(__cpu)) {			\
+		spin_unlock(__lock);			\
+		goto again;				\
+	}						\
 	*(cpuptr) = __cpu;				\
+	&__get_cpu_var_locked(var, __cpu);		\
+}))
+#else
+#define get_cpu_var_locked(var, cpuptr)			\
+(*({							\
+	int __cpu;					\
+							\
+	preempt_disable();				\
+	__cpu = smp_processor_id();			\
 	spin_lock(&__get_cpu_lock(var, __cpu));		\
+	preempt_enable();				\
+	*(cpuptr) = __cpu;				\
 	&__get_cpu_var_locked(var, __cpu);		\
 }))
+#endif
 
 #define put_cpu_var_locked(var, cpu) \
 	 do { (void)cpu; spin_unlock(&__get_cpu_lock(var, cpu)); } while (0)
-- 
1.7.1.1

