aboutsummaryrefslogtreecommitdiffstats
path: root/xenolinux-2.4.22-sparse/drivers/char/tty_io.c
diff options
context:
space:
mode:
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-12-19 14:38:15 +0000
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-12-19 14:38:15 +0000
commit24e81789606925507a369a624941c7bbab793735 (patch)
tree4f9b3c3bcafc3357a3ec41fd071742e69bceb1b6 /xenolinux-2.4.22-sparse/drivers/char/tty_io.c
parent49836d9d4f67e92796cf8d68ad4361b448bd7d9d (diff)
parent8708081a01a064f8356f580445cc57f6aa2b9648 (diff)
downloadxen-24e81789606925507a369a624941c7bbab793735.tar.gz
xen-24e81789606925507a369a624941c7bbab793735.tar.bz2
xen-24e81789606925507a369a624941c7bbab793735.zip
bitkeeper revision 1.651 (3fe30d57DatlAZVUHwbVCkF4_TelxA)
Merge labyrinth.cl.cam.ac.uk:/usr/groups/xeno/BK/xeno.bk into labyrinth.cl.cam.ac.uk:/auto/anfs/scratch/labyrinth/iap10/xeno-clone/xeno.bk
Diffstat (limited to 'xenolinux-2.4.22-sparse/drivers/char/tty_io.c')
-rw-r--r--xenolinux-2.4.22-sparse/drivers/char/tty_io.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/xenolinux-2.4.22-sparse/drivers/char/tty_io.c b/xenolinux-2.4.22-sparse/drivers/char/tty_io.c
index 60d122e353..e5334deb1d 100644
--- a/xenolinux-2.4.22-sparse/drivers/char/tty_io.c
+++ b/xenolinux-2.4.22-sparse/drivers/char/tty_io.c
@@ -158,6 +158,7 @@ extern void tub3270_init(void);
extern void rs285_console_init(void);
extern void sa1100_rs_console_init(void);
extern void sgi_serial_console_init(void);
+extern void sn_sal_serial_console_init(void);
extern void sci_console_init(void);
extern void dec_serial_console_init(void);
extern void tx3912_console_init(void);
@@ -458,8 +459,6 @@ void do_tty_hangup(void *data)
redirect = NULL;
}
spin_unlock(&redirect_lock);
- if (f)
- fput(f);
check_tty_count(tty, "do_tty_hangup");
file_list_lock();
@@ -546,6 +545,8 @@ void do_tty_hangup(void *data)
} else if (tty->driver.hangup)
(tty->driver.hangup)(tty);
unlock_kernel();
+ if (f)
+ fput(f);
}
void tty_hangup(struct tty_struct * tty)
@@ -1052,7 +1053,7 @@ static void release_mem(struct tty_struct *tty, int idx)
}
o_tty->magic = 0;
(*o_tty->driver.refcount)--;
- list_del(&o_tty->tty_files);
+ list_del_init(&o_tty->tty_files);
free_tty_struct(o_tty);
}
@@ -1064,7 +1065,7 @@ static void release_mem(struct tty_struct *tty, int idx)
}
tty->magic = 0;
(*tty->driver.refcount)--;
- list_del(&tty->tty_files);
+ list_del_init(&tty->tty_files);
free_tty_struct(tty);
}
@@ -2400,6 +2401,12 @@ void __init tty_init(void)
kbd_init();
#endif
+#ifdef CONFIG_SGI_L1_SERIAL_CONSOLE
+ if (ia64_platform_is("sn2")) {
+ sn_sal_serial_console_init();
+ return; /* only one console right now for SN2 */
+ }
+#endif
#ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */
espserial_init();
#endif