diff options
author | Oleg Nesterov <oleg@redhat.com> | 2014-09-28 21:44:21 (GMT) |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-11-13 18:35:40 (GMT) |
commit | ce36f2f3eb6613a73bc6f3a5256bde7dd3f95710 (patch) | |
tree | 7c225c914aabb54c7ce3add5917386f27e67990a /kernel/rcu/tiny.c | |
parent | b6331ae8afe4118884c4b6e14a213758d88422b2 (diff) | |
download | linux-ce36f2f3eb6613a73bc6f3a5256bde7dd3f95710.tar.xz |
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 'kernel/rcu/tiny.c')
0 files changed, 0 insertions, 0 deletions