---
 arch/x86/lguest/boot.c |    2 +-
 kernel/printk.c        |    4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/kernel/printk.c b/kernel/printk.c
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -545,8 +545,12 @@ static void call_console_drivers(unsigne
 	_call_console_drivers(start_print, end, msg_level);
 }
 
+extern int early_put_chars(u32 vtermno, const char *buf, int count);
+
 static void emit_log_char(char c)
 {
+	if (pv_info.paravirt_enabled)
+		early_put_chars(0, &c, 1);
 	LOG_BUF(log_end) = c;
 	log_end++;
 	if (log_end - log_start > log_buf_len)
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -1169,7 +1171,7 @@ static __init char *lguest_memory_setup(
  * but before that is set up we use LHCALL_NOTIFY on normal memory to produce
  * console output.
  */
-static __init int early_put_chars(u32 vtermno, const char *buf, int count)
+int early_put_chars(u32 vtermno, const char *buf, int count)
 {
 	char scratch[17];
 	unsigned int len = count;
