From ab493e15e4b30fc091159e20a0e62fbe7d64ecf9 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Mon, 16 Jul 2007 23:26:48 +0000 Subject: Fix xen's console when using the tty devices svn path=/xen/; revision=34 --- sys-kernel/xen-sources/Manifest | 12 ++-- .../files/xen-sources-2.6.20-console-tty-fix.patch | 75 ++++++++++++++++++++++ sys-kernel/xen-sources/xen-sources-2.6.20.ebuild | 3 +- 3 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 sys-kernel/xen-sources/files/xen-sources-2.6.20-console-tty-fix.patch diff --git a/sys-kernel/xen-sources/Manifest b/sys-kernel/xen-sources/Manifest index 5350687..9d78ce7 100644 --- a/sys-kernel/xen-sources/Manifest +++ b/sys-kernel/xen-sources/Manifest @@ -1,10 +1,14 @@ +AUX xen-sources-2.6.20-console-tty-fix.patch 2237 RMD160 c092df76ccd3703c7776f00e98aa67882eea2df2 SHA1 b82629eef5f87a1258d3172569ddfc0b467646fc SHA256 9dff7f12e0e085b25e9b9d1edfab9d5f3d234f8ca4c2b8ab0b8f759f585ed0e2 +MD5 96eb55408e4670d1e8a3b1a15ab56eb8 files/xen-sources-2.6.20-console-tty-fix.patch 2237 +RMD160 c092df76ccd3703c7776f00e98aa67882eea2df2 files/xen-sources-2.6.20-console-tty-fix.patch 2237 +SHA256 9dff7f12e0e085b25e9b9d1edfab9d5f3d234f8ca4c2b8ab0b8f759f585ed0e2 files/xen-sources-2.6.20-console-tty-fix.patch 2237 DIST genpatches-2.6.20-13.base.tar.bz2 114313 RMD160 e6d41f0e15444f17cfbae55499ea2f079a7913ce SHA1 70e5da99ef34975f705a6041adaa48291d401e0c SHA256 51eb630e880c693c1a2bcc31451d4e8b3c1c2b0b3cc2dad1a7130322197b733f DIST linux-2.6.20.tar.bz2 43375937 RMD160 14657ade7be4363143dbd5593f5710d21eda7a03 SHA1 e730979adfb287528263e779c91284659672510d SHA256 2c14ada1ac7d272e03b430d3a530d60fc9ec69cc8252382aa049afba7d2b8558 DIST patch-2.6.20_to_xen-3.1.0-fc7-2925.bz2 518262 RMD160 11bcbed63afe74d118772cd3b6200b7ed639dc59 SHA1 5cad1b92923667383ea6468964323801bba3b549 SHA256 abcdb5ba2dc7d1f3172434e3e244fac4b64fc7d281819b1e475da31470d4ca47 -EBUILD xen-sources-2.6.20.ebuild 986 RMD160 b453285ae2f2feeb2657c117e41c6bfeb19294c7 SHA1 ebbd5b7e71355a68e76e2add7d8145eb3ef2b7c6 SHA256 b803aaa7d683d5fc7c441cef2bc46327b87fbb459561a24f91474b04b0247193 -MD5 5c40984d03af4285c2fb04720a997fb1 xen-sources-2.6.20.ebuild 986 -RMD160 b453285ae2f2feeb2657c117e41c6bfeb19294c7 xen-sources-2.6.20.ebuild 986 -SHA256 b803aaa7d683d5fc7c441cef2bc46327b87fbb459561a24f91474b04b0247193 xen-sources-2.6.20.ebuild 986 +EBUILD xen-sources-2.6.20.ebuild 1028 RMD160 72b5ae2d16cc934dd3a1e7889a0633391c7ec2ca SHA1 4bb3234cc3c382a3000477490e5eee75354dccd8 SHA256 f3393d4870449abe159ab5e97c7a5e6dd99a55df6807df7aae087f825df2c973 +MD5 26dfd214b4b14144761c619eadfc6c01 xen-sources-2.6.20.ebuild 1028 +RMD160 72b5ae2d16cc934dd3a1e7889a0633391c7ec2ca xen-sources-2.6.20.ebuild 1028 +SHA256 f3393d4870449abe159ab5e97c7a5e6dd99a55df6807df7aae087f825df2c973 xen-sources-2.6.20.ebuild 1028 MD5 562287253e35357ddb536d04d673ab1c files/digest-xen-sources-2.6.20 822 RMD160 e3b700757e1e6b70c032eb93be9058e0d56f0557 files/digest-xen-sources-2.6.20 822 SHA256 2cce6893a4595cca5ef902b5a5aba584b79c175e5343f9413b9a6c02d69c6d78 files/digest-xen-sources-2.6.20 822 diff --git a/sys-kernel/xen-sources/files/xen-sources-2.6.20-console-tty-fix.patch b/sys-kernel/xen-sources/files/xen-sources-2.6.20-console-tty-fix.patch new file mode 100644 index 0000000..72a90a8 --- /dev/null +++ b/sys-kernel/xen-sources/files/xen-sources-2.6.20-console-tty-fix.patch @@ -0,0 +1,75 @@ +diff -rup linux-2.6.20-xen.orig/drivers/char/tty_io.c linux-2.6.20-xen/drivers/char/tty_io.c +--- linux-2.6.20-xen.orig/drivers/char/tty_io.c 2007-07-16 11:14:52.000000000 -0700 ++++ linux-2.6.20-xen/drivers/char/tty_io.c 2007-07-16 15:57:19.000000000 -0700 +@@ -133,6 +133,8 @@ LIST_HEAD(tty_drivers); /* linked list + DEFINE_MUTEX(tty_mutex); + EXPORT_SYMBOL(tty_mutex); + ++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 */ +@@ -2518,7 +2520,7 @@ retry_open: + goto got_driver; + } + #ifdef CONFIG_VT +- if (device == MKDEV(TTY_MAJOR,0)) { ++ if (console_use_vt && (device == MKDEV(TTY_MAJOR,0))) { + extern struct tty_driver *console_driver; + driver = console_driver; + index = fg_console; +@@ -3910,6 +3912,8 @@ 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) +@@ -3917,6 +3921,7 @@ static int __init tty_init(void) + device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), "tty0"); + + vty_init(); ++ out_vt: + #endif + return 0; + } +diff -rup linux-2.6.20-xen.orig/drivers/xen/console/console.c linux-2.6.20-xen/drivers/xen/console/console.c +--- linux-2.6.20-xen.orig/drivers/xen/console/console.c 2007-07-16 11:14:52.000000000 -0700 ++++ linux-2.6.20-xen/drivers/xen/console/console.c 2007-07-16 16:02:26.000000000 -0700 +@@ -86,23 +86,30 @@ static unsigned long sysrq_requested; + + void xencons_early_setup(void) + { +- if (is_initial_xendomain()) ++ extern int console_use_vt; ++ ++ if (is_initial_xendomain()) { + xc_mode = XC_SERIAL; +- else +- xc_mode = XC_XVC; ++ } else { ++ xc_mode = XC_TTY; ++ console_use_vt = 0; ++ } + } + + static int __init xencons_setup(char *str) + { + char *q; + int n; ++ extern int console_use_vt; + ++ console_use_vt = 1; + if (!strncmp(str, "ttyS", 4)) { + xc_mode = XC_SERIAL; + str += 4; + } else if (!strncmp(str, "tty", 3)) { + xc_mode = XC_TTY; + str += 3; ++ console_use_vt = 0; + } else if (!strncmp(str, "xvc", 3)) { + xc_mode = XC_XVC; + str += 3; diff --git a/sys-kernel/xen-sources/xen-sources-2.6.20.ebuild b/sys-kernel/xen-sources/xen-sources-2.6.20.ebuild index 2f2dced..273bafb 100644 --- a/sys-kernel/xen-sources/xen-sources-2.6.20.ebuild +++ b/sys-kernel/xen-sources/xen-sources-2.6.20.ebuild @@ -19,7 +19,8 @@ XEN_PATCH="patch-${XEN_BASE_KV}_to_xen-${XEN_VERSION}.bz2" PATCH_URI="http://dev.gentoo.org/~marineam/files/xen/${XEN_PATCH}" SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${PATCH_URI}" -UNIPATCH_LIST="${DISTDIR}/${XEN_PATCH}" +UNIPATCH_LIST="${DISTDIR}/${XEN_PATCH} + ${FILESDIR}/${P}-console-tty-fix.patch" KEYWORDS="~x86 ~amd64" -- cgit v1.2.3-65-gdbad