WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [LINUX] Fix booting with e.g. xencons=tty

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [LINUX] Fix booting with e.g. xencons=tty3, so that tty1/tty2 are valid (dummy) devices.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 03 Jul 2006 10:20:52 +0000
Delivery-date: Mon, 03 Jul 2006 03:29:13 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxxxx
# Node ID 9fd92e7e91a58b5d09dc2f4f2f520ed01e69834f
# Parent  856caf975abd50b78c15f41cc8ab52372059fcf3
[LINUX] Fix booting with e.g. xencons=tty3, so that tty1/tty2 are valid (dummy) 
devices.

Attached patch makes it always create valid devices on tty1-tty63, but
all but the one specified by xencons are dummy devices.

From: Mark McLoughlin <markmc@xxxxxxxxxx>
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/drivers/xen/console/console.c |   35 +++++++++------------
 1 files changed, 16 insertions(+), 19 deletions(-)

diff -r 856caf975abd -r 9fd92e7e91a5 
linux-2.6-xen-sparse/drivers/xen/console/console.c
--- a/linux-2.6-xen-sparse/drivers/xen/console/console.c        Mon Jul 03 
08:35:12 2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c        Mon Jul 03 
08:52:27 2006 +0100
@@ -267,7 +267,8 @@ void xencons_force_flush(void)
 /******************** User-space console driver (/dev/console) ************/
 
 #define DRV(_d)         (_d)
-#define TTY_INDEX(_tty) ((_tty)->index)
+#define DUMMY_TTY(_tty) ((xc_mode != XC_SERIAL) &&             \
+                        ((_tty)->index != (xc_num - 1)))
 
 static struct termios *xencons_termios[MAX_NR_CONSOLES];
 static struct termios *xencons_termios_locked[MAX_NR_CONSOLES];
@@ -391,7 +392,7 @@ static void xencons_send_xchar(struct tt
 {
        unsigned long flags;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        spin_lock_irqsave(&xencons_lock, flags);
@@ -402,7 +403,7 @@ static void xencons_send_xchar(struct tt
 
 static void xencons_throttle(struct tty_struct *tty)
 {
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        if (I_IXOFF(tty))
@@ -411,7 +412,7 @@ static void xencons_throttle(struct tty_
 
 static void xencons_unthrottle(struct tty_struct *tty)
 {
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        if (I_IXOFF(tty)) {
@@ -426,7 +427,7 @@ static void xencons_flush_buffer(struct 
 {
        unsigned long flags;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        spin_lock_irqsave(&xencons_lock, flags);
@@ -451,7 +452,7 @@ static int xencons_write(
        int i;
        unsigned long flags;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return count;
 
        spin_lock_irqsave(&xencons_lock, flags);
@@ -472,7 +473,7 @@ static void xencons_put_char(struct tty_
 {
        unsigned long flags;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        spin_lock_irqsave(&xencons_lock, flags);
@@ -484,7 +485,7 @@ static void xencons_flush_chars(struct t
 {
        unsigned long flags;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        spin_lock_irqsave(&xencons_lock, flags);
@@ -496,7 +497,7 @@ static void xencons_wait_until_sent(stru
 {
        unsigned long orig_jiffies = jiffies;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        while (DRV(tty->driver)->chars_in_buffer(tty)) {
@@ -515,7 +516,7 @@ static int xencons_open(struct tty_struc
 {
        unsigned long flags;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return 0;
 
        spin_lock_irqsave(&xencons_lock, flags);
@@ -532,7 +533,7 @@ static void xencons_close(struct tty_str
 {
        unsigned long flags;
 
-       if (TTY_INDEX(tty) != 0)
+       if (DUMMY_TTY(tty))
                return;
 
        if (tty->count == 1) {
@@ -588,8 +589,7 @@ static int __init xencons_init(void)
        DRV(xencons_driver)->init_termios    = tty_std_termios;
        DRV(xencons_driver)->flags           =
                TTY_DRIVER_REAL_RAW |
-               TTY_DRIVER_RESET_TERMIOS |
-               TTY_DRIVER_NO_DEVFS;
+               TTY_DRIVER_RESET_TERMIOS;
        DRV(xencons_driver)->termios         = xencons_termios;
        DRV(xencons_driver)->termios_locked  = xencons_termios_locked;
 
@@ -599,8 +599,8 @@ static int __init xencons_init(void)
                DRV(xencons_driver)->name_base   = 0 + xc_num;
        } else {
                DRV(xencons_driver)->name        = "tty";
-               DRV(xencons_driver)->minor_start = xc_num;
-               DRV(xencons_driver)->name_base   = xc_num;
+               DRV(xencons_driver)->minor_start = 1;
+               DRV(xencons_driver)->name_base   = 1;
        }
 
        tty_set_operations(xencons_driver, &xencons_ops);
@@ -614,8 +614,6 @@ static int __init xencons_init(void)
                xencons_driver = NULL;
                return rc;
        }
-
-       tty_register_device(xencons_driver, 0, NULL);
 
        if (xen_start_info->flags & SIF_INITDOMAIN) {
                xencons_priv_irq = bind_virq_to_irqhandler(
@@ -629,8 +627,7 @@ static int __init xencons_init(void)
        }
 
        printk("Xen virtual console successfully installed as %s%d\n",
-              DRV(xencons_driver)->name,
-              DRV(xencons_driver)->name_base );
+              DRV(xencons_driver)->name, xc_num);
 
        return 0;
 }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [LINUX] Fix booting with e.g. xencons=tty3, so that tty1/tty2 are valid (dummy) devices., Xen patchbot-unstable <=