Subject: rcu: Fix macro substitution for synchronize_rcu_bh() on RT From: John Kacur Date: Mon, 14 Nov 2011 02:44:42 +0100 kernel/rcutorture.c:492: error: ‘synchronize_rcu_bh’ undeclared here (not in a function) synchronize_rcu_bh() is not just called as a normal function, but can also be referenced as a function pointer. When CONFIG_PREEMPT_RT_FULL is enabled, synchronize_rcu_bh() is defined as synchronize_rcu(), but needs to be defined without the parenthesis because the compiler will complain when synchronize_rcu_bh is referenced as a function pointer and not a function. Signed-off-by: John Kacur Cc: Paul McKenney Cc: stable-rt@vger.kernel.org Link: http://lkml.kernel.org/r/1321235083-21756-1-git-send-email-jkacur@redhat.com Signed-off-by: Thomas Gleixner --- include/linux/rcutree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux-3.4/include/linux/rcutree.h =================================================================== --- linux-3.4.orig/include/linux/rcutree.h +++ linux-3.4/include/linux/rcutree.h @@ -60,7 +60,7 @@ static inline void exit_rcu(void) #ifndef CONFIG_PREEMPT_RT_FULL extern void synchronize_rcu_bh(void); #else -# define synchronize_rcu_bh() synchronize_rcu() +# define synchronize_rcu_bh synchronize_rcu #endif extern void synchronize_sched_expedited(void); extern void synchronize_rcu_expedited(void);