rcu: Improve synchronize_rcu() diagnostics
authorFrederic Weisbecker <fweisbec@gmail.com>
Wed, 4 Jan 2012 19:44:57 +0000 (11:44 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 21 Feb 2012 17:03:22 +0000 (09:03 -0800)
commit18fec7d8758dd416904da205375e6fa667defc80
tree768f505120e075d9f93b83d0657dcaf712ea18e0
parent4c62abc90bea439a4b50aad9f67a310fb9c392e1
rcu: Improve synchronize_rcu() diagnostics

Although TREE_PREEMPT_RCU indirectly uses might_sleep() to detect illegal
use of synchronize_sched() and synchronize_rcu_bh() from within an RCU
read-side critical section, this might_sleep() check is bypassed when
there is only a single CPU (for example, when running an SMP kernel on
a single-CPU system).  This patch therefore adds a might_sleep() call
to the rcu_blocking_is_gp() check that is unconditionally invoked from
both synchronize_sched() and synchronize_rcu_bh().

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/rcutree.h