diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-02-26 19:38:57 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-02-27 03:53:52 -0500 |
commit | 0b1c87278a8c7e394022ec184a0b44a3886b6fde (patch) | |
tree | d2dd63579227a4bf038766e7ba34d36242f08c4b /include/linux/rcupdate.h | |
parent | a47cd880b50e14b0b6f5e9d426ae9a2676c9c474 (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.h | 2 |
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 | ||
167 | static inline int rcu_read_lock_sched_held(void) | 167 | static 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 */ |