summaryrefslogtreecommitdiff
path: root/sys/kern/tty.c
diff options
context:
space:
mode:
authorMartin Blapp <mbr@FreeBSD.org>2006-09-10 16:51:56 +0000
committerMartin Blapp <mbr@FreeBSD.org>2006-09-10 16:51:56 +0000
commitf976eefa00b4bf0c922fe89f80290808612057fd (patch)
tree721801b921fbb554499b09e7091f8e58f1d08f7c /sys/kern/tty.c
parent16b392d51da3c8a2013cacc6a648dc68e1dae433 (diff)
Notes
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r--sys/kern/tty.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c
index f5b7d91f4d71..4b868573b905 100644
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -1639,8 +1639,8 @@ ttymodem(struct tty *tp, int flag)
!ISSET(tp->t_cflag, CLOCAL)) {
SET(tp->t_state, TS_ZOMBIE);
CLR(tp->t_state, TS_CONNECTED);
+ sx_slock(&proctree_lock); /* XXX: protect t_session */
if (tp->t_session) {
- sx_slock(&proctree_lock);
if (tp->t_session->s_leader) {
struct proc *p;
@@ -1649,8 +1649,8 @@ ttymodem(struct tty *tp, int flag)
psignal(p, SIGHUP);
PROC_UNLOCK(p);
}
- sx_sunlock(&proctree_lock);
}
+ sx_sunlock(&proctree_lock);
ttyflush(tp, FREAD | FWRITE);
return (0);
}