aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rcupdate.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-02-26 19:38:57 -0500
committerIngo Molnar <mingo@elte.hu>2010-02-27 03:53:52 -0500
commit0b1c87278a8c7e394022ec184a0b44a3886b6fde (patch)
treed2dd63579227a4bf038766e7ba34d36242f08c4b /include/linux/rcupdate.h
parenta47cd880b50e14b0b6f5e9d426ae9a2676c9c474 (diff)
rcu: Make non-RCU_PROVE_LOCKING rcu_read_lock_sched_held() understand boot
Before the scheduler starts, all tasks are non-preemptible by definition. So, during that time, rcu_read_lock_sched_held() needs to always return "true". This patch makes that be so for RCU_PROVE_LOCKING=n. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: laijs@cn.fujitsu.com Cc: dipankar@in.ibm.com Cc: mathieu.desnoyers@polymtl.ca Cc: josh@joshtriplett.org Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: peterz@infradead.org Cc: rostedt@goodmis.org Cc: Valdis.Kletnieks@vt.edu Cc: dhowells@redhat.com LKML-Reference: <1267231138-27856-2-git-send-email-paulmck@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/rcupdate.h')
-rw-r--r--include/linux/rcupdate.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index fcea332a8424..c84373626336 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -166,7 +166,7 @@ static inline int rcu_read_lock_bh_held(void)
166 166
167static inline int rcu_read_lock_sched_held(void) 167static inline int rcu_read_lock_sched_held(void)
168{ 168{
169 return preempt_count() != 0; 169 return preempt_count() != 0 || !rcu_scheduler_active;
170} 170}
171 171
172#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */ 172#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */