]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: More info about potential deadlocks with rcu_read_unlock()
authorOleg Nesterov <oleg@redhat.com>
Sun, 28 Sep 2014 21:44:21 +0000 (23:44 +0200)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 13 Nov 2014 18:35:40 +0000 (10:35 -0800)
commit00b85545d0f65b0ed12ba125f0ff0ec260bc44b5
tree7c225c914aabb54c7ce3add5917386f27e67990a
parentd742414a52ca57e0033f41c1e3c07a04d7c840b0
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>
include/linux/rcupdate.h