aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@redhat.com>2014-09-28 23:44:21 +0200
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2014-11-13 10:35:40 -0800
commitce36f2f3eb6613a73bc6f3a5256bde7dd3f95710 (patch)
tree7c225c914aabb54c7ce3add5917386f27e67990a /lib
parentrcu: Optimize cond_resched_rcu_qs() (diff)
downloadlinux-dev-ce36f2f3eb6613a73bc6f3a5256bde7dd3f95710.tar.xz
linux-dev-ce36f2f3eb6613a73bc6f3a5256bde7dd3f95710.zip
rcu: More info about potential deadlocks with rcu_read_unlock()
The comment above rcu_read_unlock() explains the potential deadlock if the caller holds one of the locks taken by rt_mutex_unlock() paths, but it is not clear from this documentation that any lock which can be taken from interrupt can lead to deadlock as well and we need to take rt_mutex_lock() into account too. The problem is that rt_mutex_lock() takes wait_lock without disabling irqs, and thus an interrupt taking some LOCK can obviously race with rcu_read_unlock_special() called with the same LOCK held. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions