|
@@ -5,6 +5,7 @@
|
|
#include <linux/init.h>
|
|
#include <linux/init.h>
|
|
#include <linux/kern_levels.h>
|
|
#include <linux/kern_levels.h>
|
|
#include <linux/linkage.h>
|
|
#include <linux/linkage.h>
|
|
|
|
+#include <linux/cache.h>
|
|
|
|
|
|
extern const char linux_banner[];
|
|
extern const char linux_banner[];
|
|
extern const char linux_proc_banner[];
|
|
extern const char linux_proc_banner[];
|
|
@@ -253,17 +254,17 @@ extern asmlinkage void dump_stack(void) __cold;
|
|
*/
|
|
*/
|
|
|
|
|
|
#ifdef CONFIG_PRINTK
|
|
#ifdef CONFIG_PRINTK
|
|
-#define printk_once(fmt, ...) \
|
|
|
|
-({ \
|
|
|
|
- static bool __print_once; \
|
|
|
|
- \
|
|
|
|
- if (!__print_once) { \
|
|
|
|
- __print_once = true; \
|
|
|
|
- printk(fmt, ##__VA_ARGS__); \
|
|
|
|
- } \
|
|
|
|
|
|
+#define printk_once(fmt, ...) \
|
|
|
|
+({ \
|
|
|
|
+ static bool __print_once __read_mostly; \
|
|
|
|
+ \
|
|
|
|
+ if (!__print_once) { \
|
|
|
|
+ __print_once = true; \
|
|
|
|
+ printk(fmt, ##__VA_ARGS__); \
|
|
|
|
+ } \
|
|
})
|
|
})
|
|
#else
|
|
#else
|
|
-#define printk_once(fmt, ...) \
|
|
|
|
|
|
+#define printk_once(fmt, ...) \
|
|
no_printk(fmt, ##__VA_ARGS__)
|
|
no_printk(fmt, ##__VA_ARGS__)
|
|
#endif
|
|
#endif
|
|
|
|
|