diff options
author | jhb <jhb@FreeBSD.org> | 2008-09-08 19:44:57 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2008-09-08 19:44:57 +0000 |
commit | f147e876b77207eff82e28394140c4b684077538 (patch) | |
tree | 2ede2f20db8a14918a86fe1b7f244b834caff75e /contrib/diff | |
parent | a5110e6b7d74319cc9d4c83b44279e027a9056ca (diff) | |
download | FreeBSD-src-f147e876b77207eff82e28394140c4b684077538.zip FreeBSD-src-f147e876b77207eff82e28394140c4b684077538.tar.gz |
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
Diffstat (limited to 'contrib/diff')
0 files changed, 0 insertions, 0 deletions