From 131c0ec029c9738475ab125f3166b4a05d3699da Mon Sep 17 00:00:00 2001 From: "Luis R. Rodriguez" Date: Wed, 10 Apr 2013 04:35:12 -0700 Subject: [PATCH] compat: backport dev_level_ratelimited() mcgrof@frijol ~/linux-stable (git::master)$ git describe --contains 6ca04593 v3.5-rc1~147^2~7 This is only enabled for kernels where ratelimit.h was added. commit 6ca045930338485a8cdef117e74372aa1678009d Author: Hiroshi DOYU Date: Mon May 14 10:47:57 2012 +0300 driver core: Add dev_*_ratelimited() family Add dev_*_ratelimited() family, dev_* version of pr_*_ratelimited(). Using Joe Perches's proposal/implementation. Signed-off-by: Hiroshi DOYU Cc: Joe Perches Signed-off-by: Greg Kroah-Hartman Signed-off-by: Luis R. Rodriguez Signed-off-by: Johannes Berg --- backport/include/linux/compat-3.5.h | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/backport/include/linux/compat-3.5.h b/backport/include/linux/compat-3.5.h index 7e9e65ac21eb..dbf8f00e82b1 100644 --- a/backport/include/linux/compat-3.5.h +++ b/backport/include/linux/compat-3.5.h @@ -10,6 +10,42 @@ #include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) +#include +#define dev_level_ratelimited(dev_level, dev, fmt, ...) \ +do { \ + static DEFINE_RATELIMIT_STATE(_rs, \ + DEFAULT_RATELIMIT_INTERVAL, \ + DEFAULT_RATELIMIT_BURST); \ + if (__ratelimit(&_rs)) \ + dev_level(dev, fmt, ##__VA_ARGS__); \ +} while (0) + +#define dev_emerg_ratelimited(dev, fmt, ...) \ + dev_level_ratelimited(dev_emerg, dev, fmt, ##__VA_ARGS__) +#define dev_alert_ratelimited(dev, fmt, ...) \ + dev_level_ratelimited(dev_alert, dev, fmt, ##__VA_ARGS__) + + +#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG) +#define dev_dbg_ratelimited(dev, fmt, ...) \ +do { \ + static DEFINE_RATELIMIT_STATE(_rs, \ + DEFAULT_RATELIMIT_INTERVAL, \ + DEFAULT_RATELIMIT_BURST); \ + DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ + if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT) && \ + __ratelimit(&_rs)) \ + __dynamic_pr_debug(&descriptor, pr_fmt(fmt), \ + ##__VA_ARGS__); \ +} while (0) +#else +#define dev_dbg_ratelimited(dev, fmt, ...) \ + no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) +#endif + +#endif + /* * This backports: * commit 569a8fc38367dfafd87454f27ac646c8e6b54bca -- 2.30.2