aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/printk.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/kernel/printk.c b/kernel/printk.c
index 2de593df036b..1c8ca176458f 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -49,13 +49,6 @@
49#define CREATE_TRACE_POINTS 49#define CREATE_TRACE_POINTS
50#include <trace/events/printk.h> 50#include <trace/events/printk.h>
51 51
52/*
53 * Architectures can override it:
54 */
55void asmlinkage __attribute__((weak)) early_printk(const char *fmt, ...)
56{
57}
58
59/* printk's without a loglevel use this.. */ 52/* printk's without a loglevel use this.. */
60#define DEFAULT_MESSAGE_LOGLEVEL CONFIG_DEFAULT_MESSAGE_LOGLEVEL 53#define DEFAULT_MESSAGE_LOGLEVEL CONFIG_DEFAULT_MESSAGE_LOGLEVEL
61 54
@@ -1723,6 +1716,29 @@ static size_t cont_print_text(char *text, size_t size) { return 0; }
1723 1716
1724#endif /* CONFIG_PRINTK */ 1717#endif /* CONFIG_PRINTK */
1725 1718
1719#ifdef CONFIG_EARLY_PRINTK
1720struct console *early_console;
1721
1722void early_vprintk(const char *fmt, va_list ap)
1723{
1724 if (early_console) {
1725 char buf[512];
1726 int n = vscnprintf(buf, sizeof(buf), fmt, ap);
1727
1728 early_console->write(early_console, buf, n);
1729 }
1730}
1731
1732asmlinkage void early_printk(const char *fmt, ...)
1733{
1734 va_list ap;
1735
1736 va_start(ap, fmt);
1737 early_vprintk(fmt, ap);
1738 va_end(ap);
1739}
1740#endif
1741
1726static int __add_preferred_console(char *name, int idx, char *options, 1742static int __add_preferred_console(char *name, int idx, char *options,
1727 char *brl_options) 1743 char *brl_options)
1728{ 1744{