2015-11-25 18:52:30

by Ameen

[permalink] [raw]
Subject: [PATCH] Update ratelimit.c

fix a bug in ratelimit, if the "begin" doesn't update at the same time with printed
the print will start from 1 in loops except for the first time,
lets to only 9 logs suppressed, but not 10 as expected.

Signed-off-by : Ameen Ali <[email protected]>
---
lib/ratelimit.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/lib/ratelimit.c b/lib/ratelimit.c
index 40e03ea..7118ea7 100644
--- a/lib/ratelimit.c
+++ b/lib/ratelimit.c
@@ -42,14 +42,12 @@ int ___ratelimit(struct ratelimit_state *rs, const char *func)
if (!raw_spin_trylock_irqsave(&rs->lock, flags))
return 0;

- if (!rs->begin)
- rs->begin = jiffies;

if (time_is_before_jiffies(rs->begin + rs->interval)) {
if (rs->missed)
printk(KERN_WARNING "%s: %d callbacks suppressed\n",
func, rs->missed);
- rs->begin = 0;
+ rs->begin = jiffies;
rs->printed = 0;
rs->missed = 0;
}
--
2.5.0