/* * Exit an interrupt handler towards idle. */ void rcu_irq_exit(void) { unsigned long flags; long long newval; local_irq_save(flags); newval = rcu_dynticks_nesting - 1; WARN_ON_ONCE(newval < 0); rcu_idle_enter_common(newval); local_irq_restore(flags); }
/* * Exit an interrupt handler towards idle. */ void rcu_irq_exit(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_enter_common(oldval); local_irq_restore(flags); }
/* * Exit an interrupt handler towards idle. */ void rcu_irq_exit(void) { unsigned long flags; long long newval; local_irq_save(flags); mutant_covered = 1; /* MUTANT (rep_const) */ newval = rcu_dynticks_nesting - 0; WARN_ON_ONCE(newval < 0); rcu_idle_enter_common(newval); local_irq_restore(flags); }
/* * Exit an interrupt handler towards idle. */ void rcu_irq_exit(void) { unsigned long flags; mutant_covered = 1; /* MUTANT (del_stmt) */ /* long long newval; */ local_irq_save(flags); newval = rcu_dynticks_nesting - 1; WARN_ON_ONCE(newval < 0); rcu_idle_enter_common(newval); local_irq_restore(flags); }
/* * Enter idle, which is an extended quiescent state if we have fully * entered that mode (i.e., if the new value of dynticks_nesting is zero). */ void rcu_idle_enter(void) { unsigned long flags; long long newval; local_irq_save(flags); WARN_ON_ONCE((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == 0); if ((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE) newval = 0; else newval = rcu_dynticks_nesting - DYNTICK_TASK_NEST_VALUE; rcu_idle_enter_common(newval); local_irq_restore(flags); }
/* * Enter idle, which is an extended quiescent state if we have fully * entered that mode (i.e., if the new value of dynticks_nesting is zero). */ void rcu_idle_enter(void) { unsigned long flags; long long newval; local_irq_save(flags); mutant_covered = 1; /* MUTANT (del_stmt) */ /* WARN_ON_ONCE((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == 0); */ if ((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE) newval = 0; else newval = rcu_dynticks_nesting - DYNTICK_TASK_NEST_VALUE; rcu_idle_enter_common(newval); local_irq_restore(flags); }
/* * Enter idle, which is an extended quiescent state if we have fully * entered that mode (i.e., if the new value of dynticks_nesting is zero). */ void rcu_idle_enter(void) { unsigned long flags; long long newval; local_irq_save(flags); WARN_ON_ONCE((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == 0); if ((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE) { /* MUTANT (rep_const) */ newval = -1; } else { newval = rcu_dynticks_nesting - DYNTICK_TASK_NEST_VALUE; } rcu_idle_enter_common(newval); local_irq_restore(flags); }
void rcu_irq_exit(void) { unsigned long flags; long long oldval; struct rcu_dynticks *rdtp; 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 (rdtp->dynticks_nesting) trace_rcu_dyntick("--=", oldval, rdtp->dynticks_nesting); else rcu_idle_enter_common(rdtp, oldval); local_irq_restore(flags); }
void rcu_idle_enter(void) { unsigned long flags; long long oldval; struct rcu_dynticks *rdtp; local_irq_save(flags); rdtp = &__get_cpu_var(rcu_dynticks); oldval = rdtp->dynticks_nesting; WARN_ON_ONCE((oldval & DYNTICK_TASK_NEST_MASK) == 0); if ((oldval & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE) rdtp->dynticks_nesting = 0; else rdtp->dynticks_nesting -= DYNTICK_TASK_NEST_VALUE; rcu_idle_enter_common(rdtp, oldval); local_irq_restore(flags); }
/* * Enter idle, which is an extended quiescent state if we have fully * entered that mode (i.e., if the new value of dynticks_nesting is zero). */ void rcu_idle_enter(void) { unsigned long flags; long long newval; local_irq_save(flags); WARN_ON_ONCE((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == 0); mutant_covered = 1; /* MUTANT (negate) */ if(! ((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE)) { newval = 0; } else { newval = rcu_dynticks_nesting - DYNTICK_TASK_NEST_VALUE; } rcu_idle_enter_common(newval); local_irq_restore(flags); }
/* * Enter idle, which is an extended quiescent state if we have fully * entered that mode (i.e., if the new value of dynticks_nesting is zero). */ void rcu_idle_enter(void) { unsigned long flags; long long newval; local_irq_save(flags); WARN_ON_ONCE((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == 0); if ((rcu_dynticks_nesting & DYNTICK_TASK_NEST_MASK) == DYNTICK_TASK_NEST_VALUE) { if (!__covered2) {__covered2 = 1; total_covered += 1;} newval = 0; } else { if (!__covered3) {__covered3 = 1; total_covered += 1;} newval = rcu_dynticks_nesting - DYNTICK_TASK_NEST_VALUE; } rcu_idle_enter_common(newval); local_irq_restore(flags); }