diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/device.h | 35 |
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, ...) \ | ||
| 1123 | do { \ | ||
| 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, ...) \ | ||
| 1133 | do { \ | ||
| 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, ...) \ |
| 1122 | do { \ | 1157 | do { \ |
| 1123 | static DEFINE_RATELIMIT_STATE(_rs, \ | 1158 | static DEFINE_RATELIMIT_STATE(_rs, \ |
