aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rcupdate.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-08 00:59:54 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-20 12:00:10 -0400
commit9079fd7c2e06a92cf27d05224a1f478581916c5b (patch)
tree9f093e0efc716c18c3ca66fbd670e3f1099e4fe6 /include/linux/rcupdate.h
parenta57eb940d130477a799dfb24a570ee04979c0f7f (diff)
rcu: update obsolete rcu_read_lock() comment.
The comment says that blocking is illegal in rcu_read_lock()-style RCU read-side critical sections, which is no longer entirely true given preemptible RCU. This commit provides a fix. Suggested-by: David Miller <davem@davemloft.net> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'include/linux/rcupdate.h')
-rw-r--r--include/linux/rcupdate.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 24b896649384..d7af96ef6fcf 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -458,7 +458,20 @@ extern int rcu_my_thread_group_empty(void);
458 * will be deferred until the outermost RCU read-side critical section 458 * will be deferred until the outermost RCU read-side critical section
459 * completes. 459 * completes.
460 * 460 *
461 * It is illegal to block while in an RCU read-side critical section. 461 * You can avoid reading and understanding the next paragraph by
462 * following this rule: don't put anything in an rcu_read_lock() RCU
463 * read-side critical section that would block in a !PREEMPT kernel.
464 * But if you want the full story, read on!
465 *
466 * In non-preemptible RCU implementations (TREE_RCU and TINY_RCU), it
467 * is illegal to block while in an RCU read-side critical section. In
468 * preemptible RCU implementations (TREE_PREEMPT_RCU and TINY_PREEMPT_RCU)
469 * in CONFIG_PREEMPT kernel builds, RCU read-side critical sections may
470 * be preempted, but explicit blocking is illegal. Finally, in preemptible
471 * RCU implementations in real-time (CONFIG_PREEMPT_RT) kernel builds,
472 * RCU read-side critical sections may be preempted and they may also
473 * block, but only when acquiring spinlocks that are subject to priority
474 * inheritance.
462 */ 475 */
463static inline void rcu_read_lock(void) 476static inline void rcu_read_lock(void)
464{ 477{