aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2014-11-17 21:18:22 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-11-26 22:40:11 -0500
commite135303bd5bebcd22bcf8a6b06ec0dd5a9432708 (patch)
tree45c102588a4a450153ad34bb512eb29952fd4f4d /include/linux
parentd32394fae95741d733b174ec1446f27765f80233 (diff)
device: Add dev_<level>_once variants
Add the equivalents to pr_<level>_once. Suggested-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/device.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index ce1f21608b16..99fb07cb4f06 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -1118,6 +1118,41 @@ do { \
1118}) 1118})
1119#endif 1119#endif
1120 1120
1121#ifdef CONFIG_PRINTK
1122#define dev_level_once(dev_level, dev, fmt, ...) \
1123do { \
1124 static bool __print_once __read_mostly; \
1125 \
1126 if (!__print_once) { \
1127 __print_once = true; \
1128 dev_level(dev, fmt, ##__VA_ARGS__); \
1129 } \
1130} while (0)
1131#else
1132#define dev_level_once(dev_level, dev, fmt, ...) \
1133do { \
1134 if (0) \
1135 dev_level(dev, fmt, ##__VA_ARGS__); \
1136} while (0)
1137#endif
1138
1139#define dev_emerg_once(dev, fmt, ...) \
1140 dev_level_once(dev_emerg, dev, fmt, ##__VA_ARGS__)
1141#define dev_alert_once(dev, fmt, ...) \
1142 dev_level_once(dev_alert, dev, fmt, ##__VA_ARGS__)
1143#define dev_crit_once(dev, fmt, ...) \
1144 dev_level_once(dev_crit, dev, fmt, ##__VA_ARGS__)
1145#define dev_err_once(dev, fmt, ...) \
1146 dev_level_once(dev_err, dev, fmt, ##__VA_ARGS__)
1147#define dev_warn_once(dev, fmt, ...) \
1148 dev_level_once(dev_warn, dev, fmt, ##__VA_ARGS__)
1149#define dev_notice_once(dev, fmt, ...) \
1150 dev_level_once(dev_notice, dev, fmt, ##__VA_ARGS__)
1151#define dev_info_once(dev, fmt, ...) \
1152 dev_level_once(dev_info, dev, fmt, ##__VA_ARGS__)
1153#define dev_dbg_once(dev, fmt, ...) \
1154 dev_level_once(dev_info, dev, fmt, ##__VA_ARGS__)
1155
1121#define dev_level_ratelimited(dev_level, dev, fmt, ...) \ 1156#define dev_level_ratelimited(dev_level, dev, fmt, ...) \
1122do { \ 1157do { \
1123 static DEFINE_RATELIMIT_STATE(_rs, \ 1158 static DEFINE_RATELIMIT_STATE(_rs, \