aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/enlighten.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2008-05-26 18:31:07 -0400
committerThomas Gleixner <tglx@linutronix.de>2008-05-27 04:11:36 -0400
commit9e124fe16ff24746d6de5a2ad685266d7bce0e08 (patch)
tree6be2bf0edd3799170c74f3fff15f1adf14e0380b /arch/x86/xen/enlighten.c
parenta15af1c9ea2750a9ff01e51615c45950bad8221b (diff)
xen: Enable console tty by default in domU if it's not a dummy
Without console= arguments on the kernel command line, the first console to register becomes enabled and the preferred console (the one behind /dev/console). This is normally tty (assuming CONFIG_VT_CONSOLE is enabled, which it commonly is). This is okay as long tty is a useful console. But unless we have the PV framebuffer, and it is enabled for this domain, tty0 in domU is merely a dummy. In that case, we want the preferred console to be the Xen console hvc0, and we want it without having to fiddle with the kernel command line. Commit b8c2d3dfbc117dff26058fbac316b8acfc2cb5f7 did that for us. Since we now have the PV framebuffer, we want to enable and prefer tty again, but only when PVFB is enabled. But even then we still want to enable the Xen console as well. Problem: when tty registers, we can't yet know whether the PVFB is enabled. By the time we can know (xenstore is up), the console setup game is over. Solution: enable console tty by default, but keep hvc as the preferred console. Change the preferred console to tty when PVFB probes successfully, unless we've been given console kernel parameters. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/xen/enlighten.c')
-rw-r--r--arch/x86/xen/enlighten.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 1b4b5fa498b3..6cfb708408e9 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1256,8 +1256,10 @@ asmlinkage void __init xen_start_kernel(void)
1256 ? __pa(xen_start_info->mod_start) : 0; 1256 ? __pa(xen_start_info->mod_start) : 0;
1257 boot_params.hdr.ramdisk_size = xen_start_info->mod_len; 1257 boot_params.hdr.ramdisk_size = xen_start_info->mod_len;
1258 1258
1259 if (!is_initial_xendomain()) 1259 if (!is_initial_xendomain()) {
1260 add_preferred_console("tty", 0, NULL);
1260 add_preferred_console("hvc", 0, NULL); 1261 add_preferred_console("hvc", 0, NULL);
1262 }
1261 1263
1262 /* Start the world */ 1264 /* Start the world */
1263 start_kernel(); 1265 start_kernel();