]> git.karo-electronics.de Git - karo-tx-linux.git/commit
rcu: Permit rt_mutex_unlock() with irqs disabled
authorPaul E. McKenney <paul.mckenney@linaro.org>
Wed, 17 Aug 2011 00:46:46 +0000 (17:46 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 12 Sep 2011 17:18:43 +0000 (10:18 -0700)
commit4b75ad090c9757c05a048b6e23bbf6d1110db73d
tree07f98a45bda7d7249e0b7fe3e654b98fde5e3824
parent4dfc6c6bae766c6dc9a1b81f8b4d0920ba2c1400
rcu: Permit rt_mutex_unlock() with irqs disabled

Create a separate lockdep class for the rt_mutex used for RCU priority
boosting and enable use of rt_mutex_lock() with irqs disabled.  This
prevents RCU priority boosting from falling prey to deadlocks when
someone begins an RCU read-side critical section in preemptible state,
but releases it with an irq-disabled lock held.

Unfortunately, the scheduler's runqueue and priority-inheritance locks
still must either completely enclose or be completely enclosed by any
overlapping RCU read-side critical section.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree_plugin.h
kernel/rtmutex.c