• Paul E. McKenney's avatar
    rcu: Permit rt_mutex_unlock() with irqs disabled · 5342e269
    Paul E. McKenney authored
    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.
    
    This version removes a redundant local_irq_restore() noted by
    Yong Zhang.
    Signed-off-by: default avatarPaul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    5342e269
rcutree_plugin.h 59.2 KB