diff options
Diffstat (limited to 'include/linux/printk.h')
| -rw-r--r-- | include/linux/printk.h | 17 | 
1 files changed, 12 insertions, 5 deletions
| diff --git a/include/linux/printk.h b/include/linux/printk.h index f4da695fd615..f136b22c7772 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -108,11 +108,14 @@ struct va_format {   * Dummy printk for disabled debugging statements to use whilst maintaining   * gcc's format checking.   */ -#define no_printk(fmt, ...)			\ -do {						\ -	if (0)					\ -		printk(fmt, ##__VA_ARGS__);	\ -} while (0) +#define no_printk(fmt, ...)				\ +({							\ +	do {						\ +		if (0)					\ +			printk(fmt, ##__VA_ARGS__);	\ +	} while (0);					\ +	0;						\ +})  #ifdef CONFIG_EARLY_PRINTK  extern asmlinkage __printf(1, 2) @@ -309,20 +312,24 @@ extern asmlinkage void dump_stack(void) __cold;  #define printk_once(fmt, ...)					\  ({								\  	static bool __print_once __read_mostly;			\ +	bool __ret_print_once = !__print_once;			\  								\  	if (!__print_once) {					\  		__print_once = true;				\  		printk(fmt, ##__VA_ARGS__);			\  	}							\ +	unlikely(__ret_print_once);				\  })  #define printk_deferred_once(fmt, ...)				\  ({								\  	static bool __print_once __read_mostly;			\ +	bool __ret_print_once = !__print_once;			\  								\  	if (!__print_once) {					\  		__print_once = true;				\  		printk_deferred(fmt, ##__VA_ARGS__);		\  	}							\ +	unlikely(__ret_print_once);				\  })  #else  #define printk_once(fmt, ...)					\ |