From owner-cvs-src@FreeBSD.ORG Fri Sep 5 13:03:28 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 016D916A4BF; Fri, 5 Sep 2003 13:03:28 -0700 (PDT) Received: from dglawrence.com (12-224-163-157.client.attbi.com [12.224.163.157]) by mx1.FreeBSD.org (Postfix) with ESMTP id 257A143FE1; Fri, 5 Sep 2003 13:03:27 -0700 (PDT) (envelope-from dg@nexus.dglawrence.com) Received: from nexus.dglawrence.com (localhost [127.0.0.1]) by dglawrence.com (8.12.9/8.12.6) with ESMTP id h85K53nV017535; Fri, 5 Sep 2003 13:05:03 -0700 (PDT) (envelope-from dg@nexus.dglawrence.com) Received: (from dg@localhost) by nexus.dglawrence.com (8.12.9/8.12.3/Submit) id h85K52VK017534; Fri, 5 Sep 2003 13:05:02 -0700 (PDT) Date: Fri, 5 Sep 2003 13:05:02 -0700 From: "David G. Lawrence" To: Nate Lawson Message-ID: <20030905200502.GB61917@nexus.dglawrence.com> References: <20030905182744.6630916A4E8@hub.freebsd.org> <20030905124936.F72174@root.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030905124936.F72174@root.org> cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/ata ata-all.c ata-disk.c ata-disk.h atapi-all.c atapi-all.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 20:03:28 -0000 > On Fri, 5 Sep 2003, David Greenman wrote: > > Modified files: (Branch: RELENG_4) > > sys/dev/ata ata-all.c ata-disk.c ata-disk.h > > atapi-all.c atapi-all.h > > Log: > > Fixed panics that will occur during attempts to rescan ATA disk devices > > (which occur after disk errors). The panic is due to attempts to acquire > > the ATA channel lock multiple times (at different levels), with the second > > attempt trying to sleep in an interrupt context. The fix is to indicate > > to the other levels that we already have the lock. > > The problem has been fixed in -current a different way and isn't portable > > to -stable. > > > > Reviewed by: sos@freebsd.org > > Approved by: re@freebsd.org > > > > Revision Changes Path > > 1.50.2.47 +12 -12 src/sys/dev/ata/ata-all.c > > 1.60.2.27 +3 -2 src/sys/dev/ata/ata-disk.c > > 1.22.2.9 +1 -1 src/sys/dev/ata/ata-disk.h > > 1.46.2.20 +3 -2 src/sys/dev/ata/atapi-all.c > > 1.22.2.12 +1 -1 src/sys/dev/ata/atapi-all.h > > Yikes, invasive. Is there a way to do a "if (held(lock))" construct > instead? What do you mean by invasive? -DG David G. Lawrence Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500 TeraSolutions, Inc. - http://www.terasolutions.com - (888) 346 7175 The FreeBSD Project - http://www.freebsd.org Pave the road of life with opportunities.