From owner-cvs-all@FreeBSD.ORG Mon Sep 8 19:45:07 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79B30106574E; Mon, 8 Sep 2008 19:45:07 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B6788FC12; Mon, 8 Sep 2008 19:45:06 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m88Jj6Ga031715; Mon, 8 Sep 2008 19:45:06 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m88Jj6K2031704; Mon, 8 Sep 2008 19:45:06 GMT (envelope-from jhb@repoman.freebsd.org) Message-Id: <200809081945.m88Jj6K2031704@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jhb@repoman.freebsd.org using -f From: John Baldwin Date: Mon, 8 Sep 2008 19:44:57 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/kern subr_sleepqueue.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2008 19:45:07 -0000 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