 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;

_
