aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r--kernel/rcu/tree.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 419f3c38e1b6..142cdd4a50c9 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -818,6 +818,7 @@ static void rcu_eqs_enter(bool user)
818 struct rcu_dynticks *rdtp; 818 struct rcu_dynticks *rdtp;
819 819
820 rdtp = this_cpu_ptr(&rcu_dynticks); 820 rdtp = this_cpu_ptr(&rcu_dynticks);
821 WRITE_ONCE(rdtp->dynticks_nmi_nesting, 0);
821 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && 822 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
822 (rdtp->dynticks_nesting & DYNTICK_TASK_NEST_MASK) == 0); 823 (rdtp->dynticks_nesting & DYNTICK_TASK_NEST_MASK) == 0);
823 if ((rdtp->dynticks_nesting & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE) 824 if ((rdtp->dynticks_nesting & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE)
@@ -1008,6 +1009,7 @@ static void rcu_eqs_exit(bool user)
1008 rcu_eqs_exit_common(DYNTICK_TASK_EXIT_IDLE, user); 1009 rcu_eqs_exit_common(DYNTICK_TASK_EXIT_IDLE, user);
1009 rdtp->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; 1010 rdtp->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
1010 __this_cpu_dec(disable_rcu_irq_enter); 1011 __this_cpu_dec(disable_rcu_irq_enter);
1012 WRITE_ONCE(rdtp->dynticks_nmi_nesting, DYNTICK_IRQ_NONIDLE);
1011 } 1013 }
1012} 1014}
1013 1015