Lines Matching refs:rs
27 int ___ratelimit(struct ratelimit_state *rs, const char *func) in ___ratelimit() argument
33 int interval = READ_ONCE(rs->interval); in ___ratelimit()
34 int burst = READ_ONCE(rs->burst); in ___ratelimit()
45 if (!(READ_ONCE(rs->flags) & RATELIMIT_INITIALIZED) || (!interval && !burst) || in ___ratelimit()
46 !raw_spin_trylock_irqsave(&rs->lock, flags)) in ___ratelimit()
50 rs->flags &= ~RATELIMIT_INITIALIZED; in ___ratelimit()
60 if (!raw_spin_trylock_irqsave(&rs->lock, flags)) { in ___ratelimit()
61 if (READ_ONCE(rs->flags) & RATELIMIT_INITIALIZED && in ___ratelimit()
62 atomic_read(&rs->rs_n_left) > 0 && atomic_dec_return(&rs->rs_n_left) >= 0) in ___ratelimit()
67 if (!(rs->flags & RATELIMIT_INITIALIZED)) { in ___ratelimit()
68 rs->begin = jiffies; in ___ratelimit()
69 rs->flags |= RATELIMIT_INITIALIZED; in ___ratelimit()
70 atomic_set(&rs->rs_n_left, rs->burst); in ___ratelimit()
73 if (time_is_before_jiffies(rs->begin + interval)) { in ___ratelimit()
80 atomic_set(&rs->rs_n_left, rs->burst); in ___ratelimit()
81 rs->begin = jiffies; in ___ratelimit()
83 if (!(rs->flags & RATELIMIT_MSG_ON_RELEASE)) { in ___ratelimit()
84 m = ratelimit_state_reset_miss(rs); in ___ratelimit()
93 if (atomic_read(&rs->rs_n_left) > 0 && atomic_dec_return(&rs->rs_n_left) >= 0) in ___ratelimit()
97 raw_spin_unlock_irqrestore(&rs->lock, flags); in ___ratelimit()
101 ratelimit_state_inc_miss(rs); in ___ratelimit()