]> git.hungrycats.org Git - linux/commitdiff
[PATCH] tty cleanups (1/12)
authorAlexander Viro <viro@www.linux.org.uk>
Wed, 23 Apr 2003 11:18:07 +0000 (04:18 -0700)
committerChristoph Hellwig <hch@lst.de>
Wed, 23 Apr 2003 11:18:07 +0000 (04:18 -0700)
Christoph's fix for devfs problems with pty.

drivers/char/pty.c
drivers/char/tty_io.c

index 85c52650290d3e702ef5a5c2222362af3508acd5..c7a5300d47478026407e7885af32c943410835d9 100644 (file)
@@ -95,7 +95,6 @@ static void pty_close(struct tty_struct * tty, struct file * filp)
                        }
                }
 #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];
index 3f6589b8580aad6d12c50410753c33337ce4b237..3310d687c4bf9543501f4071a855e0d5c52202f1 100644 (file)
@@ -2215,7 +2215,8 @@ int tty_unregister_driver(struct tty_driver *driver)
                        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;