Hi, An unclosed "if" statement in the MACRO seems a bit risky, but I don't have any better/simple solution for this, ATM. Is there any alternative? From: Hiroshi DOYU <hdoyu@xxxxxxxxxx> Add dev_*_ratelimited() family, dev_* version of pr_*_ratelimited(). Signed-off-by: Hiroshi DOYU <hdoyu@xxxxxxxxxx> --- include/linux/device.h | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/include/linux/device.h b/include/linux/device.h index 8b9d03a..9d976df 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -23,6 +23,7 @@ #include <linux/mutex.h> #include <linux/pm.h> #include <linux/atomic.h> +#include <linux/ratelimit.h> #include <asm/device.h> struct device; @@ -937,6 +938,27 @@ int _dev_info(const struct device *dev, const char *fmt, ...) #endif +#define IF_DEV_RATELIMITED \ + static DEFINE_RATELIMIT_STATE(_rs, \ + DEFAULT_RATELIMIT_INTERVAL, \ + DEFAULT_RATELIMIT_BURST); \ + if (__ratelimit(&_rs)) + +#define dev_emerg_ratelimited(dev, fmt, ...) \ + do { IF_DEV_RATELIMITED dev_printk(KERN_EMERG, dev, fmt, ##__VA_ARGS__); } while (0) +#define dev_alert_ratelimited(dev, fmt, ...) \ + do { IF_DEV_RATELIMITED dev_printk(KERN_ALERT, dev, fmt, ##__VA_ARGS__); } while (0) +#define dev_crit_ratelimited(dev, fmt, ...) \ + do { IF_DEV_RATELIMITED dev_printk(KERN_CRIT, dev, fmt, ##__VA_ARGS__); } while (0) +#define dev_err_ratelimited(dev, fmt, ...) \ + do { IF_DEV_RATELIMITED dev_printk(KERN_ERR, dev, fmt, ##__VA_ARGS__); } while (0) +#define dev_warn_ratelimited(dev, fmt, ...) \ + do { IF_DEV_RATELIMITED dev_printk(KERN_WARNING, dev, fmt, ##__VA_ARGS__); } while (0) +#define dev_notice_ratelimited(dev, fmt, ...) \ + do { IF_DEV_RATELIMITED dev_printk(KERN_NOTICE, dev, fmt, ##__VA_ARGS__); } while (0) +#define dev_info_ratelimited(dev, fmt, ...) \ + do { IF_DEV_RATELIMITED dev_printk(KERN_INFO, dev, fmt, ##__VA_ARGS__); } while (0) + /* * Stupid hackaround for existing uses of non-printk uses dev_info * -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html