diff options
Diffstat (limited to 'drivers/tty/pty.c')
| -rw-r--r-- | drivers/tty/pty.c | 26 | 
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c index e18604b3fc7..d8653ab6f49 100644 --- a/drivers/tty/pty.c +++ b/drivers/tty/pty.c @@ -446,19 +446,8 @@ static inline void legacy_pty_init(void) { }  int pty_limit = NR_UNIX98_PTY_DEFAULT;  static int pty_limit_min;  static int pty_limit_max = NR_UNIX98_PTY_MAX; -static int tty_count;  static int pty_count; -static inline void pty_inc_count(void) -{ -	pty_count = (++tty_count) / 2; -} - -static inline void pty_dec_count(void) -{ -	pty_count = (--tty_count) / 2; -} -  static struct cdev ptmx_cdev;  static struct ctl_table pty_table[] = { @@ -600,8 +589,7 @@ static int pty_unix98_install(struct tty_driver *driver, struct tty_struct *tty)  	 */  	tty_driver_kref_get(driver);  	tty->count++; -	pty_inc_count(); /* tty */ -	pty_inc_count(); /* tty->link */ +	pty_count++;  	return 0;  err_free_mem:  	deinitialize_tty_struct(o_tty); @@ -613,15 +601,19 @@ err_free_tty:  	return -ENOMEM;  } -static void pty_unix98_remove(struct tty_driver *driver, struct tty_struct *tty) +static void ptm_unix98_remove(struct tty_driver *driver, struct tty_struct *tty) +{ +	pty_count--; +} + +static void pts_unix98_remove(struct tty_driver *driver, struct tty_struct *tty)  { -	pty_dec_count();  }  static const struct tty_operations ptm_unix98_ops = {  	.lookup = ptm_unix98_lookup,  	.install = pty_unix98_install, -	.remove = pty_unix98_remove, +	.remove = ptm_unix98_remove,  	.open = pty_open,  	.close = pty_close,  	.write = pty_write, @@ -638,7 +630,7 @@ static const struct tty_operations ptm_unix98_ops = {  static const struct tty_operations pty_unix98_ops = {  	.lookup = pts_unix98_lookup,  	.install = pty_unix98_install, -	.remove = pty_unix98_remove, +	.remove = pts_unix98_remove,  	.open = pty_open,  	.close = pty_close,  	.write = pty_write,  |