rcu: Make rcu_idle_enter() rely on callers disabling irqs
authorPeter Zijlstra (Intel) <peterz@infradead.org>
Wed, 12 Jul 2017 14:59:54 +0000 (07:59 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 17 Aug 2017 14:26:24 +0000 (07:26 -0700)
All callers to rcu_idle_enter() have irqs disabled, so there is no
point in rcu_idle_enter disabling them again.  This commit therefore
replaces the irq disabling with a RCU_LOCKDEP_WARN().

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.c

index ac2617d857a331c0eca56258c23a788369e6b360..76f88b65961f9e283a1b2d6cf9faeb1464f753f8 100644 (file)
@@ -843,11 +843,8 @@ static void rcu_eqs_enter(bool user)
  */
 void rcu_idle_enter(void)
 {
-       unsigned long flags;
-
-       local_irq_save(flags);
+       RCU_LOCKDEP_WARN(!irqs_disabled(), "rcu_idle_enter() invoked with irqs enabled!!!");
        rcu_eqs_enter(false);
-       local_irq_restore(flags);
 }
 EXPORT_SYMBOL_GPL(rcu_idle_enter);