On Wed, 2008-02-20 at 22:32 -0800, David Miller wrote:
quoted
+ if (lost) {
+ printk(KERN_WARNING
+ "printk: %d %s%smessage%s suppressed.\n",
+ lost,
+ (state->facility == 0 ? "" :
state->facility),
+ (state->facility == 0 ? "" : " "),
+ (lost > 1 ? "s" : ""));
+ }
return 1;
}
This compares a pointer to 0.
How about something like:
if (lost)
pr_warn("printk: %s suppressed message count: %d\n",
state->facility ? : "ratelimit", lost);
quoted
- missed++;
+ state->missed++;
spin_unlock_irqrestore(&ratelimit_lock, flags);
return 0;
}
@@ -1280,8 +1290,18 @@ int printk_ratelimit_burst = 10;
int printk_ratelimit(void)
{
+ static struct printk_ratelimit_state limit_state = {
+ .toks = 10 * 5 * HZ,
+ .last_jiffies = 0,
+ .missed = 0,
+ .limit_jiffies = 5 * HZ,
+ .limit_burst = 10,
+ .facility = 0
+ };
+
.facility = NULL