linux/debian/patches/features/all/rt/rcu-fix-build-break.patch

61 lines
2.1 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Subject: rcu: Fix build break
From: John Kacur <jkacur@redhat.com>
Date: Fri, 13 Apr 2012 12:54:21 +0200
A build break can occur with the following config options enabled
CONFIG_PREEMPT_RT_FULL
CONFIG_RCU_FAST_NO_HZ
CONFIG_RCU_CPU_STALL_INFO
This occurs because symbols in print_cpu_stall_fast_no_hz() such as
rcu_idle_gp_timer are not accessible with CONFIG_PREEMPT_RT_FULL
and results in the following type of build errors:
kernel/rcutree_plugin.h: In function print_cpu_stall_fast_no_hz:
kernel/rcutree_plugin.h:2195: error: rcu_idle_gp_timer undeclared (first use in this function)
This patch fixes the build break by limiting the PREEMPT_RT_FULL
section to the function rcu_needs_cpu() instead of to the entire
!defined(CONFIG_RCU_FAST_NO_NZ) section as was intended in the
original "rcu: Make ksoftirqd do RCU quiescent states" patch.
Signed-off-by: John Kacur <jkacur@redhat.com>
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/1334314461-8937-1-git-send-email-jkacur@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
kernel/rcutree_plugin.h | 5 +++++
1 file changed, 5 insertions(+)
Index: linux-stable/kernel/rcutree_plugin.h
===================================================================
--- linux-stable.orig/kernel/rcutree_plugin.h
+++ linux-stable/kernel/rcutree_plugin.h
@@ -1743,6 +1743,9 @@ int rcu_needs_cpu(int cpu, unsigned long
*delta_jiffies = ULONG_MAX;
return rcu_cpu_has_callbacks(cpu);
}
+#endif /* !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL) */
+
+#if !defined(CONFIG_RCU_FAST_NO_HZ)
/*
* Because we do not have RCU_FAST_NO_HZ, don't bother initializing for it.
@@ -1859,6 +1862,7 @@ static bool rcu_cpu_has_nonlazy_callback
rcu_preempt_cpu_has_nonlazy_callbacks(cpu);
}
+#ifndef CONFIG_PREEMPT_RT_FULL
/*
* Allow the CPU to enter dyntick-idle mode if either: (1) There are no
* callbacks on this CPU, (2) this CPU has not yet attempted to enter
@@ -1902,6 +1906,7 @@ int rcu_needs_cpu(int cpu, unsigned long
}
return 0;
}
+#endif /* #ifndef CONFIG_PREEMPT_RT_FULL */
/*
* Handler for smp_call_function_single(). The only point of this