diff -r c859588adc5e -r 72582b968445 linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c --- a/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c Sat Sep 02 15:31:29 2006 -0400 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c Sat Sep 02 15:32:38 2006 -0400 @@ -1868,9 +1868,6 @@ void __init setup_arch(char **cmdline_p) } else { #if defined(CONFIG_VT) && defined(CONFIG_DUMMY_CONSOLE) conswitchp = &dummy_con; -#else - extern int console_use_vt; - console_use_vt = 0; #endif } } diff -r c859588adc5e -r 72582b968445 linux-2.6-xen-sparse/arch/ia64/kernel/setup.c --- a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c Sat Sep 02 15:31:29 2006 -0400 +++ b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c Sat Sep 02 15:32:38 2006 -0400 @@ -546,9 +546,9 @@ setup_arch (char **cmdline_p) xen_start_info->nr_pages, xen_start_info->flags); if (!is_initial_xendomain()) { - extern int console_use_vt; +#if !defined(CONFIG_VT) || !defined(CONFIG_DUMMY_CONSOLE) conswitchp = NULL; - console_use_vt = 0; +#endif } } #endif diff -r c859588adc5e -r 72582b968445 linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c --- a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c Sat Sep 02 15:31:29 2006 -0400 +++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c Sat Sep 02 15:32:38 2006 -0400 @@ -987,9 +987,10 @@ void __init setup_arch(char **cmdline_p) #endif #endif } else { - extern int console_use_vt; - console_use_vt = 0; - } +#if defined(CONFIG_VT) && defined(CONFIG_DUMMY_CONSOLE) + conswitchp = &dummy_con; +#endif + } } #else /* CONFIG_XEN */ diff -r c859588adc5e -r 72582b968445 linux-2.6-xen-sparse/drivers/char/tty_io.c --- a/linux-2.6-xen-sparse/drivers/char/tty_io.c Sat Sep 02 15:31:29 2006 -0400 +++ b/linux-2.6-xen-sparse/drivers/char/tty_io.c Sat Sep 02 15:32:38 2006 -0400 @@ -132,8 +132,6 @@ LIST_HEAD(tty_drivers); /* linked list vt.c for deeply disgusting hack reasons */ DECLARE_MUTEX(tty_sem); -int console_use_vt = 1; - #ifdef CONFIG_UNIX98_PTYS extern struct tty_driver *ptm_driver; /* Unix98 pty masters; for /dev/ptmx */ extern int pty_limit; /* Config limit on Unix98 ptys */ @@ -2056,7 +2054,7 @@ retry_open: goto got_driver; } #ifdef CONFIG_VT - if (console_use_vt && (device == MKDEV(TTY_MAJOR,0))) { + if (device == MKDEV(TTY_MAJOR,0)) { extern struct tty_driver *console_driver; driver = console_driver; index = fg_console; @@ -3243,8 +3241,6 @@ static int __init tty_init(void) #endif #ifdef CONFIG_VT - if (!console_use_vt) - goto out_vt; cdev_init(&vc0_cdev, &console_fops); if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) || register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0) diff -r c859588adc5e -r 72582b968445 linux-2.6-xen-sparse/drivers/xen/console/console.c --- a/linux-2.6-xen-sparse/drivers/xen/console/console.c Sat Sep 02 15:31:29 2006 -0400 +++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c Sat Sep 02 15:32:38 2006 -0400 @@ -663,6 +663,20 @@ static int __init xencons_init(void) printk("Xen virtual console successfully installed as %s%d\n", DRV(xencons_driver)->name, xc_num); + /* Don't need to check about graphical fb for domain 0 */ + if (is_initial_xendomain()) + return 0; + + rc = 0; + if (xenbus_scanf(XBT_NIL, "console", "use_graphics", "%d", &rc) < 0) + printk(KERN_ERR "Unable to read console/use_graphics\n"); + if (rc == 0) { + /* FIXME: this is ugly */ + unregister_console(&kcons_info); + kcons_info.flags |= CON_CONSDEV; + register_console(&kcons_info); + } + return 0; }