drivers/char/pty.c | 6 +----- drivers/char/tty_io.c | 3 ++- 2 files changed, 3 insertions(+), 6 deletions(-) diff -puN drivers/char/pty.c~devfs-pty-fix drivers/char/pty.c --- 25/drivers/char/pty.c~devfs-pty-fix 2003-04-22 23:55:14.000000000 -0700 +++ 25-akpm/drivers/char/pty.c 2003-04-22 23:55:14.000000000 -0700 @@ -95,7 +95,6 @@ static void pty_close(struct tty_struct } } #endif - tty_unregister_device (&tty->link->driver, minor(tty->device)); tty_vhangup(tty->link); } } @@ -448,17 +447,14 @@ int __init pty_init(void) init_waitqueue_head(&ptm_state[i][j].open_wait); pts_driver[i] = pty_slave_driver; -#ifdef CONFIG_DEVFS_FS - pts_driver[i].name = "pts/%d"; -#else pts_driver[i].name = "pts"; -#endif pts_driver[i].proc_entry = 0; pts_driver[i].major = UNIX98_PTY_SLAVE_MAJOR+i; pts_driver[i].minor_start = 0; pts_driver[i].name_base = i*NR_PTYS; pts_driver[i].num = ptm_driver[i].num; pts_driver[i].other = &ptm_driver[i]; + pts_driver[i].flags |= TTY_DRIVER_NO_DEVFS; pts_driver[i].table = pts_table[i]; pts_driver[i].termios = pts_termios[i]; pts_driver[i].termios_locked = pts_termios_locked[i]; diff -puN drivers/char/tty_io.c~devfs-pty-fix drivers/char/tty_io.c --- 25/drivers/char/tty_io.c~devfs-pty-fix 2003-04-22 23:55:14.000000000 -0700 +++ 25-akpm/drivers/char/tty_io.c 2003-04-22 23:55:14.000000000 -0700 @@ -2215,7 +2215,8 @@ int tty_unregister_driver(struct tty_dri driver->termios_locked[i] = NULL; kfree(tp); } - tty_unregister_device(driver, driver->minor_start + i); + if (!(driver->flags & TTY_DRIVER_NO_DEVFS)) + tty_unregister_device(driver, driver->minor_start + i); } proc_tty_unregister_driver(driver); return 0; _