diff options
author | kib <kib@FreeBSD.org> | 2011-11-09 17:25:43 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2011-11-09 17:25:43 +0000 |
commit | 969e95a9f7e51110cfe0b80e6fa63779683a4830 (patch) | |
tree | 582ab30bda26c6d831037291dfc08ac52b8e574e /sys/i386 | |
parent | 245b059405bad5f487b5b59da4e4d898e2397fe2 (diff) | |
download | FreeBSD-src-969e95a9f7e51110cfe0b80e6fa63779683a4830.zip FreeBSD-src-969e95a9f7e51110cfe0b80e6fa63779683a4830.tar.gz |
Stopped process may legitimately have some threads sleeping and not
suspended, if the sleep is uninterruptible.
Reported and tested by: pho
MFC after: 1 week
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/i386/machdep.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 839dd0d..96128e5 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -3299,7 +3299,8 @@ int fill_fpregs(struct thread *td, struct fpreg *fpregs) { - KASSERT(td == curthread || TD_IS_SUSPENDED(td), + KASSERT(td == curthread || TD_IS_SUSPENDED(td) || + (P_SHOULDSTOP(td->td_proc) && TD_IS_SLEEPING(td)), ("not suspended thread %p", td)); #ifdef DEV_NPX npxgetregs(td); |