rcu: in_irq() cleanup
authorChangbin Du <changbin.du@gmail.com>
Tue, 28 Sep 2021 00:21:28 +0000 (08:21 +0800)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 1 Dec 2021 01:25:20 +0000 (17:25 -0800)
This commit replaces the obsolete and ambiguous macro in_irq() with its
shiny new in_hardirq() equivalent.

Signed-off-by: Changbin Du <changbin.du@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
include/linux/rcutiny.h
kernel/rcu/tree.c
kernel/rcu/tree_plugin.h

index 9be0153..858f4d4 100644 (file)
@@ -85,7 +85,7 @@ static inline void rcu_irq_enter_irqson(void) { }
 static inline void rcu_irq_exit(void) { }
 static inline void rcu_irq_exit_check_preempt(void) { }
 #define rcu_is_idle_cpu(cpu) \
-       (is_idle_task(current) && !in_nmi() && !in_irq() && !in_serving_softirq())
+       (is_idle_task(current) && !in_nmi() && !in_hardirq() && !in_serving_softirq())
 static inline void exit_rcu(void) { }
 static inline bool rcu_preempt_need_deferred_qs(struct task_struct *t)
 {
index ef8d36f..f0f19dc 100644 (file)
@@ -1467,7 +1467,7 @@ static void rcu_gp_kthread_wake(void)
 {
        struct task_struct *t = READ_ONCE(rcu_state.gp_kthread);
 
-       if ((current == t && !in_irq() && !in_serving_softirq()) ||
+       if ((current == t && !in_hardirq() && !in_serving_softirq()) ||
            !READ_ONCE(rcu_state.gp_flags) || !t)
                return;
        WRITE_ONCE(rcu_state.gp_wake_time, jiffies);
index 5199559..599084c 100644 (file)
@@ -642,7 +642,7 @@ static void rcu_read_unlock_special(struct task_struct *t)
                           (IS_ENABLED(CONFIG_RCU_BOOST) && irqs_were_disabled &&
                            t->rcu_blocked_node);
                // Need to defer quiescent state until everything is enabled.
-               if (use_softirq && (in_irq() || (expboost && !irqs_were_disabled))) {
+               if (use_softirq && (in_hardirq() || (expboost && !irqs_were_disabled))) {
                        // Using softirq, safe to awaken, and either the
                        // wakeup is free or there is either an expedited
                        // GP in flight or a potential need to deboost.