Lines Matching defs:rs
17 * @rs: ratelimit_state data
20 * This enforces a rate limit: not more than @rs->burst callbacks
21 * in every @rs->interval
27 int ___ratelimit(struct ratelimit_state *rs, const char *func)
33 int interval = READ_ONCE(rs->interval);
34 int burst = READ_ONCE(rs->burst);
47 if (!raw_spin_trylock_irqsave(&rs->lock, flags))
50 if (!rs->begin)
51 rs->begin = jiffies;
53 if (time_is_before_jiffies(rs->begin + interval)) {
54 if (rs->missed) {
55 if (!(rs->flags & RATELIMIT_MSG_ON_RELEASE)) {
58 func, rs->missed);
59 rs->missed = 0;
62 rs->begin = jiffies;
63 rs->printed = 0;
65 if (burst && burst > rs->printed) {
66 rs->printed++;
69 rs->missed++;
72 raw_spin_unlock_irqrestore(&rs->lock, flags);