diff options
author | David Xu <davidxu@FreeBSD.org> | 2006-04-13 23:29:25 +0000 |
---|---|---|
committer | David Xu <davidxu@FreeBSD.org> | 2006-04-13 23:29:25 +0000 |
commit | cfd6f8cd6c62e08f42ecb4c26d6a2dde3642c1f0 (patch) | |
tree | a01d862a90ccb54980fc71942b702932b51a4ed3 /sys/kern/subr_sleepqueue.c | |
parent | 3f4f4a1465e1b9e6174d6bac813020768efd18b3 (diff) | |
download | src-cfd6f8cd6c62e08f42ecb4c26d6a2dde3642c1f0.tar.gz src-cfd6f8cd6c62e08f42ecb4c26d6a2dde3642c1f0.zip |
Clear TDF_SINTR in sleepq_resume_thread, also sleepq_catch_signal does
not need to clear it now, this should fix panic when msleep is recursivly
called. Patch is slightly adjusted after review.
Reviewed by: jhb
Tested by: Csaba Henk, csaba-ml at creo.hu
MFC after: 3 days
Notes
Notes:
svn path=/head/; revision=157743
Diffstat (limited to 'sys/kern/subr_sleepqueue.c')
-rw-r--r-- | sys/kern/subr_sleepqueue.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/subr_sleepqueue.c b/sys/kern/subr_sleepqueue.c index 47d9a369e2d0..1062eafb70da 100644 --- a/sys/kern/subr_sleepqueue.c +++ b/sys/kern/subr_sleepqueue.c @@ -413,7 +413,6 @@ sleepq_catch_signals(void *wchan) mtx_lock_spin(&sched_lock); if (TD_ON_SLEEPQ(td)) sleepq_resume_thread(sq, td, -1); - td->td_flags &= ~TDF_SINTR; return (ret); } @@ -633,6 +632,7 @@ sleepq_resume_thread(struct sleepqueue *sq, struct thread *td, int pri) td->td_wmesg = NULL; td->td_wchan = NULL; + td->td_flags &= ~TDF_SINTR; /* * Note that thread td might not be sleeping if it is running |