diff options
author | iap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk> | 2003-12-19 14:38:15 +0000 |
---|---|---|
committer | iap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk> | 2003-12-19 14:38:15 +0000 |
commit | 24e81789606925507a369a624941c7bbab793735 (patch) | |
tree | 4f9b3c3bcafc3357a3ec41fd071742e69bceb1b6 /xenolinux-2.4.22-sparse/drivers/char/tty_io.c | |
parent | 49836d9d4f67e92796cf8d68ad4361b448bd7d9d (diff) | |
parent | 8708081a01a064f8356f580445cc57f6aa2b9648 (diff) | |
download | xen-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.c | 15 |
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 |