diff options
Diffstat (limited to 'drivers/char/pty.c')
-rw-r--r-- | drivers/char/pty.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/char/pty.c b/drivers/char/pty.c index 48e81fc61..1e67c604e 100644 --- a/drivers/char/pty.c +++ b/drivers/char/pty.c @@ -30,7 +30,7 @@ struct pty_struct { int magic; - struct wait_queue * open_wait; + wait_queue_head_t open_wait; }; #define PTY_MAGIC 0x5001 @@ -336,13 +336,13 @@ static void pty_set_termios(struct tty_struct *tty, struct termios *old_termios) __initfunc(int pty_init(void)) { -#ifdef CONFIG_UNIX98_PTYS int i; -#endif /* Traditional BSD devices */ memset(&pty_state, 0, sizeof(pty_state)); + for (i = 0; i < NR_PTYS; i++) + init_waitqueue_head(&pty_state[i].open_wait); memset(&pty_driver, 0, sizeof(struct tty_driver)); pty_driver.magic = TTY_DRIVER_MAGIC; pty_driver.driver_name = "pty_master"; @@ -405,6 +405,8 @@ __initfunc(int pty_init(void)) #ifdef CONFIG_UNIX98_PTYS printk("pty: %d Unix98 ptys configured\n", UNIX98_NR_MAJORS*NR_PTYS); for ( i = 0 ; i < UNIX98_NR_MAJORS ; i++ ) { + int j; + ptm_driver[i] = pty_driver; ptm_driver[i].name = "ptm"; ptm_driver[i].proc_entry = 0; @@ -417,6 +419,9 @@ __initfunc(int pty_init(void)) ptm_driver[i].termios = ptm_termios[i]; ptm_driver[i].termios_locked = ptm_termios_locked[i]; ptm_driver[i].driver_state = ptm_state[i]; + + for (j = 0; j < NR_PTYS; j++) + init_waitqueue_head(&ptm_state[i][j].open_wait); pts_driver[i] = pty_slave_driver; pts_driver[i].name = "pts"; |