|
@@ -234,7 +234,8 @@ extern void dump_stack(void) __cold;
|
|
* no local ratelimit_state used in the !PRINTK case
|
|
* no local ratelimit_state used in the !PRINTK case
|
|
*/
|
|
*/
|
|
#ifdef CONFIG_PRINTK
|
|
#ifdef CONFIG_PRINTK
|
|
-#define printk_ratelimited(fmt, ...) ({ \
|
|
|
|
|
|
+#define printk_ratelimited(fmt, ...) \
|
|
|
|
+({ \
|
|
static DEFINE_RATELIMIT_STATE(_rs, \
|
|
static DEFINE_RATELIMIT_STATE(_rs, \
|
|
DEFAULT_RATELIMIT_INTERVAL, \
|
|
DEFAULT_RATELIMIT_INTERVAL, \
|
|
DEFAULT_RATELIMIT_BURST); \
|
|
DEFAULT_RATELIMIT_BURST); \
|
|
@@ -243,36 +244,34 @@ extern void dump_stack(void) __cold;
|
|
printk(fmt, ##__VA_ARGS__); \
|
|
printk(fmt, ##__VA_ARGS__); \
|
|
})
|
|
})
|
|
#else
|
|
#else
|
|
-/* No effect, but we still get type checking even in the !PRINTK case: */
|
|
|
|
-#define printk_ratelimited printk
|
|
|
|
|
|
+#define printk_ratelimited(fmt, ...) \
|
|
|
|
+ no_printk(fmt, ##__VA_ARGS__)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-#define pr_emerg_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_emerg_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
|
|
-#define pr_alert_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_alert_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
|
|
-#define pr_crit_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_crit_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
|
|
-#define pr_err_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_err_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
|
|
-#define pr_warning_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_warn_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
|
|
-#define pr_warn_ratelimited pr_warning_ratelimited
|
|
|
|
-#define pr_notice_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_notice_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
|
|
-#define pr_info_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_info_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
|
|
/* no pr_cont_ratelimited, don't do that... */
|
|
/* no pr_cont_ratelimited, don't do that... */
|
|
/* If you are writing a driver, please use dev_dbg instead */
|
|
/* If you are writing a driver, please use dev_dbg instead */
|
|
#if defined(DEBUG)
|
|
#if defined(DEBUG)
|
|
-#define pr_debug_ratelimited(fmt, ...) \
|
|
|
|
|
|
+#define pr_debug_ratelimited(fmt, ...) \
|
|
printk_ratelimited(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
|
|
printk_ratelimited(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
|
|
#else
|
|
#else
|
|
#define pr_debug_ratelimited(fmt, ...) \
|
|
#define pr_debug_ratelimited(fmt, ...) \
|
|
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
|
|
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-
|
|
|
|
enum {
|
|
enum {
|
|
DUMP_PREFIX_NONE,
|
|
DUMP_PREFIX_NONE,
|
|
DUMP_PREFIX_ADDRESS,
|
|
DUMP_PREFIX_ADDRESS,
|