lkml.org 
[lkml]   [2010]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH][RESEND] x86: Do not write to VGA memory space if CONFIG_VGA_CONSOLE is undefined
Date
Current early_printk code writes into VGA memory space even
if CONFIG_VGA_CONSOLE is undefined. This can cause problems
if there is no VGA device in the system, especially if the memory
is used by another device.

Fix problem by redirecting output to early_serial_console
if CONFIG_VGA_CONSOLE is undefined.

Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
---
Sorry if you have seen this before. I seem to have trouble with our mailer.

arch/x86/kernel/early_printk.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
index b9c830c..1942039 100644
--- a/arch/x86/kernel/early_printk.c
+++ b/arch/x86/kernel/early_printk.c
@@ -160,8 +160,16 @@ static struct console early_serial_console = {
.index = -1,
};

+#ifdef CONFIG_VGA_CONSOLE
+#define EARLY_CONSOLE early_vga_console
+static const int have_vga_console = 1;
+#else
+#define EARLY_CONSOLE early_serial_console
+static const int have_vga_console;
+#endif
+
/* Direct interface for emergencies */
-static struct console *early_console = &early_vga_console;
+static struct console *early_console = &EARLY_CONSOLE;
static int __initdata early_console_initialized;

asmlinkage void early_printk(const char *fmt, ...)
@@ -216,7 +224,7 @@ static int __init setup_early_printk(char *buf)
early_serial_init(buf + 4);
early_console_register(&early_serial_console, keep);
}
- if (!strncmp(buf, "vga", 3) &&
+ if (have_vga_console && !strncmp(buf, "vga", 3) &&
boot_params.screen_info.orig_video_isVGA == 1) {
max_xpos = boot_params.screen_info.orig_video_cols;
max_ypos = boot_params.screen_info.orig_video_lines;
--
1.7.0.87.g0901d


\
 
 \ /
  Last update: 2010-03-31 16:45    [W:0.061 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site