aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
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, \