pty: Remove pty_unix98_shutdown()

The tty core invokes the optional driver shutdown() just before
the optional driver remove() (shutdown() has access to the termios
and remove() does not). Because pty drivers must prevent the default
remove() action, the Unix98 pty drivers define a dummy remove() function.

Instead, release the slave index in the remove() method and delete the
optional shutdown() method.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Peter Hurley 2016-01-09 21:13:50 -08:00 committed by Greg Kroah-Hartman
parent 05de87ed95
commit c1e33af1ed

View file

@ -656,20 +656,13 @@ static struct tty_struct *pts_unix98_lookup(struct tty_driver *driver,
return tty; return tty;
} }
/* We have no need to install and remove our tty objects as devpts does all
the work for us */
static int pty_unix98_install(struct tty_driver *driver, struct tty_struct *tty) static int pty_unix98_install(struct tty_driver *driver, struct tty_struct *tty)
{ {
return pty_common_install(driver, tty, false); return pty_common_install(driver, tty, false);
} }
static void pty_unix98_remove(struct tty_driver *driver, struct tty_struct *tty)
{
}
/* this is called once with whichever end is closed last */ /* this is called once with whichever end is closed last */
static void pty_unix98_shutdown(struct tty_struct *tty) static void pty_unix98_remove(struct tty_driver *driver, struct tty_struct *tty)
{ {
devpts_kill_index(tty->driver_data, tty->index); devpts_kill_index(tty->driver_data, tty->index);
} }
@ -687,7 +680,6 @@ static const struct tty_operations ptm_unix98_ops = {
.unthrottle = pty_unthrottle, .unthrottle = pty_unthrottle,
.ioctl = pty_unix98_ioctl, .ioctl = pty_unix98_ioctl,
.resize = pty_resize, .resize = pty_resize,
.shutdown = pty_unix98_shutdown,
.cleanup = pty_cleanup .cleanup = pty_cleanup
}; };
@ -705,7 +697,6 @@ static const struct tty_operations pty_unix98_ops = {
.set_termios = pty_set_termios, .set_termios = pty_set_termios,
.start = pty_start, .start = pty_start,
.stop = pty_stop, .stop = pty_stop,
.shutdown = pty_unix98_shutdown,
.cleanup = pty_cleanup, .cleanup = pty_cleanup,
}; };