Lines Matching full:rs
18 * @rs: ratelimit_state data
21 * This enforces a rate limit: not more than @rs->burst callbacks
22 * in every @rs->interval
28 int ___ratelimit(struct ratelimit_state *rs, const char *func) in ___ratelimit() argument
33 if (!rs->interval) in ___ratelimit()
42 if (!raw_spin_trylock_irqsave(&rs->lock, flags)) in ___ratelimit()
45 if (!rs->begin) in ___ratelimit()
46 rs->begin = jiffies; in ___ratelimit()
48 if (time_is_before_jiffies(rs->begin + rs->interval)) { in ___ratelimit()
49 if (rs->missed) { in ___ratelimit()
50 if (!(rs->flags & RATELIMIT_MSG_ON_RELEASE)) { in ___ratelimit()
53 func, rs->missed); in ___ratelimit()
54 rs->missed = 0; in ___ratelimit()
57 rs->begin = jiffies; in ___ratelimit()
58 rs->printed = 0; in ___ratelimit()
60 if (rs->burst && rs->burst > rs->printed) { in ___ratelimit()
61 rs->printed++; in ___ratelimit()
64 rs->missed++; in ___ratelimit()
67 raw_spin_unlock_irqrestore(&rs->lock, flags); in ___ratelimit()