diff options
Diffstat (limited to 'kernel/rcu/tree.c')
| -rw-r--r-- | kernel/rcu/tree.c | 2 | 
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 | ||
