From owner-cvs-all Wed Jan 19 22:26:30 2000 Delivered-To: cvs-all@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 29A6515360; Wed, 19 Jan 2000 22:26:28 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id WAA42307; Wed, 19 Jan 2000 22:26:27 -0800 (PST) (envelope-from dillon) Date: Wed, 19 Jan 2000 22:26:27 -0800 (PST) From: Matthew Dillon Message-Id: <200001200626.WAA42307@apollo.backplane.com> To: Alfred Perlstein Cc: Jason Evans , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/kern vfs_aio.c References: <200001200200.SAA61880@freefall.freebsd.org> <20000119210539.F20191@fw.wintelcom.net> Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk :* Jason Evans [000119 18:23] wrote: :> jasone 2000/01/19 18:00:00 PST :> :> Modified files: :> sys/kern vfs_aio.c :> Log: :> Don't tsleep() while at splbio(). : :Unless it fixes some other bug, sleeping with spl raised is perfectly valid. Not only that, but this change *introduces* a race condition. The splx(s) CANNOT occur before the tsleep() or you have a race between setting the KAIO_WAKEUP flag and an interrupt occuring just prior to the tsleep(). Jason, please revert this change. tsleep()ing with the spl raised is used all over the kernel for the precise reason that it was used here: To prevent an interrupt/wakeup/tsleep race from occuring. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message