Subject: Re: linux-next: Tree for Jun 7 (fs / block / rcu)

From: "Paul E. McKenney" <[email-masked]>
Date: Thu, 7 Jun 2012 21:07:15 -0700

On Thu, Jun 07, 2012 at 11:31:07PM +0100, Mark Brown wrote:
> On Thu, Jun 07, 2012 at 01:00:07PM -0700, David Brown wrote:
> > On Thu, Jun 07, 2012 at 09:58:07AM -0700, Randy Dunlap wrote:
> 
> > net/built-in.o:/home/davidb/upstream/kdev/kernel/include/linux/rcupdate.h:312: more undefined references to `rcu_is_cpu_idle' follow
> 
> This is because rcu_is_cpu_idle() is only defined if PROVE_RCU but it's
> used in a bunch of other cases.

The following should clear it up, please accept my apologies for the
hassle.

							Thanx, Paul

------------------------------------------------------------------------

rcu: Fix rcu_is_cpu_idle() #ifdef in TINY_RCU

The rcu_is_cpu_idle() function is used if CONFIG_DEBUG_LOCK_ALLOC,
but TINY_RCU defines it only when CONFIG_PROVE_RCU.  This causes
build failures when CONFIG_DEBUG_LOCK_ALLOC=y but CONFIG_PROVE_RCU=n.
This commit therefore adjusts the #ifdefs for rcu_is_cpu_idle() so
that it is defined when CONFIG_DEBUG_LOCK_ALLOC=y.

Signed-off-by: Paul E. McKenney <[email-masked]>
Signed-off-by: Paul E. McKenney <[email-masked]>

diff --git a/kernel/rcutiny.c b/kernel/rcutiny.c
index 37a5444..547b1fe 100644
--- a/kernel/rcutiny.c
+++ b/kernel/rcutiny.c
@@ -172,7 +172,7 @@ void rcu_irq_enter(void)
 	local_irq_restore(flags);
 }
 
-#ifdef CONFIG_PROVE_RCU
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
 
 /*
  * Test whether RCU thinks that the current CPU is idle.
@@ -183,7 +183,7 @@ int rcu_is_cpu_idle(void)
 }
 EXPORT_SYMBOL(rcu_is_cpu_idle);
 
-#endif /* #ifdef CONFIG_PROVE_RCU */
+#endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
 
 /*
  * Test whether the current CPU was interrupted from idle.  Nested