Date: Mon, 8 Sep 2008 19:44:57 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern subr_sleepqueue.c Message-ID: <200809081945.m88Jj6K2031704@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jhb 2008-09-08 19:44:57 UTC
FreeBSD src repository
Modified files:
sys/kern subr_sleepqueue.c
Log:
SVN rev 182875 on 2008-09-08 19:44:57Z by jhb
Close a race in sleepq_broadcast() where the sleepq could be reused after
it had been assigned to the last sleeping thread. That thread might have
started running on another CPU and have reused that sleep queue. Fix it
by just walking the thread queue using TAILQ_FOREACH_SAFE() rather than
a while loop.
PR: amd64/124200
Discovered by: tegge
Tested by: benjsc
MFC after: 1 week
Revision Changes Path
1.57 +2 -3 src/sys/kern/subr_sleepqueue.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809081945.m88Jj6K2031704>
