From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 4 Aug 2017 18:31:00 +0200
Subject: [PATCH] hotplug: duct-tape RT-rwlock usage for non-RT

This type is only available on -RT. We need to craft something for
non-RT. Since the only migrate_disable() user is -RT only, there is no
damage.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 kernel/cpu.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -66,7 +66,7 @@ struct cpuhp_cpu_state {
 
 static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state);
 
-#ifdef CONFIG_HOTPLUG_CPU
+#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PREEMPT_RT_FULL)
 static DEFINE_PER_CPU(struct rt_rw_lock, cpuhp_pin_lock) = \
 	__RWLOCK_RT_INITIALIZER(cpuhp_pin_lock);
 #endif
@@ -221,6 +221,7 @@ static int cpu_hotplug_disabled;
  */
 void pin_current_cpu(void)
 {
+#ifdef CONFIG_PREEMPT_RT_FULL
 	struct rt_rw_lock *cpuhp_pin;
 	unsigned int cpu;
 	int ret;
@@ -245,6 +246,7 @@ void pin_current_cpu(void)
 		goto again;
 	}
 	current->pinned_on_cpu = cpu;
+#endif
 }
 
 /**
@@ -252,6 +254,7 @@ void pin_current_cpu(void)
  */
 void unpin_current_cpu(void)
 {
+#ifdef CONFIG_PREEMPT_RT_FULL
 	struct rt_rw_lock *cpuhp_pin = this_cpu_ptr(&cpuhp_pin_lock);
 
 	if (WARN_ON(current->pinned_on_cpu != smp_processor_id()))
@@ -259,6 +262,7 @@ void unpin_current_cpu(void)
 
 	current->pinned_on_cpu = -1;
 	__read_rt_unlock(cpuhp_pin);
+#endif
 }
 
 DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock);
@@ -679,7 +683,9 @@ static int take_cpu_down(void *_param)
 
 static int takedown_cpu(unsigned int cpu)
 {
+#ifdef CONFIG_PREEMPT_RT_FULL
 	struct rt_rw_lock *cpuhp_pin = per_cpu_ptr(&cpuhp_pin_lock, cpu);
+#endif
 	struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
 	int err;
 
@@ -693,14 +699,18 @@ static int takedown_cpu(unsigned int cpu
 	 */
 	irq_lock_sparse();
 
+#ifdef CONFIG_PREEMPT_RT_FULL
 	__write_rt_lock(cpuhp_pin);
+#endif
 
 	/*
 	 * So now all preempt/rcu users must observe !cpu_active().
 	 */
 	err = stop_machine_cpuslocked(take_cpu_down, NULL, cpumask_of(cpu));
 	if (err) {
+#ifdef CONFIG_PREEMPT_RT_FULL
 		__write_rt_unlock(cpuhp_pin);
+#endif
 		/* CPU refused to die */
 		irq_unlock_sparse();
 		/* Unpark the hotplug thread so we can rollback there */
@@ -719,7 +729,9 @@ static int takedown_cpu(unsigned int cpu
 	wait_for_completion(&st->done);
 	BUG_ON(st->state != CPUHP_AP_IDLE_DEAD);
 
+#ifdef CONFIG_PREEMPT_RT_FULL
 	__write_rt_unlock(cpuhp_pin);
+#endif
 	/* Interrupts are moved away from the dying cpu, reenable alloc/free */
 	irq_unlock_sparse();
 
