diff options
author | tanimura <tanimura@FreeBSD.org> | 2002-03-11 07:51:08 +0000 |
---|---|---|
committer | tanimura <tanimura@FreeBSD.org> | 2002-03-11 07:51:08 +0000 |
commit | b9e49bfcc91fc2e10b17f9bec70d4d4cfb27ad51 (patch) | |
tree | e89af2e0ef5699ab55183e3084f85fedb43b928a | |
parent | a16c1fce788aa5ca770f4ca66adcf6bec9e7c01e (diff) | |
download | FreeBSD-src-b9e49bfcc91fc2e10b17f9bec70d4d4cfb27ad51.zip FreeBSD-src-b9e49bfcc91fc2e10b17f9bec70d4d4cfb27ad51.tar.gz |
Do not lock the pgrpsess_lock exclusively across ttywait().
Spotted by: David Wolfskill <david@catwhisker.org>
Investigated by: rwatson
-rw-r--r-- | sys/kern/kern_exit.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 37d2ab1..be845fc 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -251,7 +251,9 @@ exit1(td, rv) PGRP_UNLOCK(sp->s_ttyp->t_pgrp); } /* XXX tp should be locked. */ + PGRPSESS_XUNLOCK(); (void) ttywait(tp); + PGRPSESS_XLOCK(); /* * The tty could have been revoked * if we blocked. |