printk: Add printk_deferred_once
Two of the three prink_deferred uses are really printk_once style uses, so add a printk_deferred_once macro to simplify those call sites. Signed-off-by: John Stultz <john.stultz@linaro.org> Reviewed-by: Steven Rostedt <rostedt@goodmis.org> Reviewed-by: Jan Kara <jack@suse.cz> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Jiri Bohac <jbohac@suse.cz> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
aac74dc495
commit
c224815dac
@@ -266,9 +266,20 @@ extern asmlinkage void dump_stack(void) __cold;
|
||||
printk(fmt, ##__VA_ARGS__); \
|
||||
} \
|
||||
})
|
||||
#define printk_deferred_once(fmt, ...) \
|
||||
({ \
|
||||
static bool __print_once __read_mostly; \
|
||||
\
|
||||
if (!__print_once) { \
|
||||
__print_once = true; \
|
||||
printk_deferred(fmt, ##__VA_ARGS__); \
|
||||
} \
|
||||
})
|
||||
#else
|
||||
#define printk_once(fmt, ...) \
|
||||
no_printk(fmt, ##__VA_ARGS__)
|
||||
#define printk_deferred_once(fmt, ...) \
|
||||
no_printk(fmt, ##__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
#define pr_emerg_once(fmt, ...) \
|
||||
|
Reference in New Issue
Block a user