Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Joe Perches and committed by
Greg Kroah-Hartman
e135303b d32394fa

+35
+35
include/linux/device.h
··· 1118 1118 }) 1119 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 1156 #define dev_level_ratelimited(dev_level, dev, fmt, ...) \ 1122 1157 do { \ 1123 1158 static DEFINE_RATELIMIT_STATE(_rs, \