aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/tty_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/tty_io.c')
-rw-r--r--drivers/char/tty_io.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
index b9fce77c8f03..ac937f767f23 100644
--- a/drivers/char/tty_io.c
+++ b/drivers/char/tty_io.c
@@ -1508,8 +1508,12 @@ void disassociate_ctty(int on_exit)
1508 /* XXX: here we race, there is nothing protecting tty */ 1508 /* XXX: here we race, there is nothing protecting tty */
1509 if (on_exit && tty->driver->type != TTY_DRIVER_TYPE_PTY) 1509 if (on_exit && tty->driver->type != TTY_DRIVER_TYPE_PTY)
1510 tty_vhangup(tty); 1510 tty_vhangup(tty);
1511 } else { 1511 } else if (on_exit) {
1512 pid_t old_pgrp = current->signal->tty_old_pgrp; 1512 pid_t old_pgrp;
1513 spin_lock_irq(&current->sighand->siglock);
1514 old_pgrp = current->signal->tty_old_pgrp;
1515 current->signal->tty_old_pgrp = 0;
1516 spin_unlock_irq(&current->sighand->siglock);
1513 if (old_pgrp) { 1517 if (old_pgrp) {
1514 kill_pg(old_pgrp, SIGHUP, on_exit); 1518 kill_pg(old_pgrp, SIGHUP, on_exit);
1515 kill_pg(old_pgrp, SIGCONT, on_exit); 1519 kill_pg(old_pgrp, SIGCONT, on_exit);