diff options
| author | Paul Mackerras <paulus@samba.org> | 2006-12-04 15:59:07 +1100 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2006-12-04 15:59:07 +1100 |
| commit | 79acbb3ff2d8095b692e1502b9eb2ccec348de26 (patch) | |
| tree | 6ab773e5a8f9de2cd6443362b21d0d6fffe3b35e /kernel/printk.c | |
| parent | [PATCH] ppc: Fix io.h for config with CONFIG_PCI not set (diff) | |
| parent | [XFRM]: Fix aevent structuring to be more complete. (diff) | |
| download | linux-79acbb3ff2d8095b692e1502b9eb2ccec348de26.tar.gz linux-79acbb3ff2d8095b692e1502b9eb2ccec348de26.zip | |
Merge branch 'linux-2.6' into for-linus
Diffstat (limited to 'kernel/printk.c')
| -rw-r--r-- | kernel/printk.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/printk.c b/kernel/printk.c index f7d427ef5038..66426552fbfe 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -31,6 +31,7 @@ #include <linux/security.h> #include <linux/bootmem.h> #include <linux/syscalls.h> +#include <linux/jiffies.h> #include <asm/uaccess.h> @@ -1101,3 +1102,23 @@ int printk_ratelimit(void) printk_ratelimit_burst); } EXPORT_SYMBOL(printk_ratelimit); + +/** + * printk_timed_ratelimit - caller-controlled printk ratelimiting + * @caller_jiffies: pointer to caller's state + * @interval_msecs: minimum interval between prints + * + * printk_timed_ratelimit() returns true if more than @interval_msecs + * milliseconds have elapsed since the last time printk_timed_ratelimit() + * returned true. + */ +bool printk_timed_ratelimit(unsigned long *caller_jiffies, + unsigned int interval_msecs) +{ + if (*caller_jiffies == 0 || time_after(jiffies, *caller_jiffies)) { + *caller_jiffies = jiffies + msecs_to_jiffies(interval_msecs); + return true; + } + return false; +} +EXPORT_SYMBOL(printk_timed_ratelimit); |
