/* * Enter an interrupt handler, moving away from idle. */ void rcu_irq_enter(void) { unsigned long flags; long long oldval; local_irq_save(flags); oldval = rcu_dynticks_nesting; rcu_dynticks_nesting++; WARN_ON_ONCE(rcu_dynticks_nesting == 0); rcu_idle_exit_common(oldval); local_irq_restore(flags); }
/* * Enter an interrupt handler, moving away from idle. */ void rcu_irq_enter(void) { unsigned long flags; long long oldval; local_irq_save(flags); oldval = rcu_dynticks_nesting; rcu_dynticks_nesting++; mutant_covered = 1; /* MUTANT (rep_const) */ WARN_ON_ONCE(rcu_dynticks_nesting == 1); rcu_idle_exit_common(oldval); local_irq_restore(flags); }
/* * Enter an interrupt handler, moving away from idle. */ void rcu_irq_enter(void) { mutant_covered = 1; /* MUTANT (del_stmt) */ /* unsigned long flags; */ long long oldval; local_irq_save(flags); oldval = rcu_dynticks_nesting; rcu_dynticks_nesting++; WARN_ON_ONCE(rcu_dynticks_nesting == 0); rcu_idle_exit_common(oldval); local_irq_restore(flags); }
/* * Exit idle, so that we are no longer in an extended quiescent state. */ void rcu_idle_exit(void) { unsigned long flags; long long oldval; local_irq_save(flags); oldval = rcu_dynticks_nesting; WARN_ON_ONCE(rcu_dynticks_nesting < 0); if (rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) rcu_dynticks_nesting += DYNTICK_TASK_NEST_VALUE; else rcu_dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; rcu_idle_exit_common(oldval); local_irq_restore(flags); }
void rcu_irq_enter(void) { unsigned long flags; struct rcu_dynticks *rdtp; long long oldval; local_irq_save(flags); rdtp = &__get_cpu_var(rcu_dynticks); oldval = rdtp->dynticks_nesting; rdtp->dynticks_nesting++; WARN_ON_ONCE(rdtp->dynticks_nesting == 0); if (oldval) trace_rcu_dyntick("++=", oldval, rdtp->dynticks_nesting); else rcu_idle_exit_common(rdtp, oldval); local_irq_restore(flags); }
void rcu_idle_exit(void) { unsigned long flags; struct rcu_dynticks *rdtp; long long oldval; local_irq_save(flags); rdtp = &__get_cpu_var(rcu_dynticks); oldval = rdtp->dynticks_nesting; WARN_ON_ONCE(oldval < 0); if (oldval & DYNTICK_TASK_NEST_MASK) rdtp->dynticks_nesting += DYNTICK_TASK_NEST_VALUE; else rdtp->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; rcu_idle_exit_common(rdtp, oldval); local_irq_restore(flags); }
/* * Exit idle, so that we are no longer in an extended quiescent state. */ void rcu_idle_exit(void) { /* MUTANT (del_stmt) */ /* unsigned long flags; */ long long oldval; local_irq_save(flags); oldval = rcu_dynticks_nesting; WARN_ON_ONCE(rcu_dynticks_nesting < 0); if (rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) { rcu_dynticks_nesting += DYNTICK_TASK_NEST_VALUE; } else { rcu_dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; } rcu_idle_exit_common(oldval); local_irq_restore(flags); }
/* * Exit idle, so that we are no longer in an extended quiescent state. */ void rcu_idle_exit(void) { unsigned long flags; long long oldval; local_irq_save(flags); oldval = rcu_dynticks_nesting; mutant_covered = 1; /* MUTANT (rep_op) */ WARN_ON_ONCE(rcu_dynticks_nesting == 0); if (rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) { rcu_dynticks_nesting += DYNTICK_TASK_NEST_VALUE; } else { rcu_dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; } rcu_idle_exit_common(oldval); local_irq_restore(flags); }
/* * Exit idle, so that we are no longer in an extended quiescent state. */ void rcu_idle_exit(void) { unsigned long flags; long long oldval; local_irq_save(flags); oldval = rcu_dynticks_nesting; WARN_ON_ONCE(rcu_dynticks_nesting < 0); if (rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) { if (!__covered6) {__covered6 = 1; total_covered += 1;} rcu_dynticks_nesting += DYNTICK_TASK_NEST_VALUE; } else { if (!__covered7) {__covered7 = 1; total_covered += 1;} rcu_dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; } rcu_idle_exit_common(oldval); local_irq_restore(flags); }