aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_sleepqueue.c
diff options
context:
space:
mode:
authorDavid Xu <davidxu@FreeBSD.org>2006-04-13 23:29:25 +0000
committerDavid Xu <davidxu@FreeBSD.org>2006-04-13 23:29:25 +0000
commitcfd6f8cd6c62e08f42ecb4c26d6a2dde3642c1f0 (patch)
treea01d862a90ccb54980fc71942b702932b51a4ed3 /sys/kern/subr_sleepqueue.c
parent3f4f4a1465e1b9e6174d6bac813020768efd18b3 (diff)
downloadsrc-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.c2
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