From owner-freebsd-current@FreeBSD.ORG Sun Dec 21 05:17:54 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C56511065674 for ; Sun, 21 Dec 2008 05:17:54 +0000 (UTC) (envelope-from ganbold@micom.mng.net) Received: from publicd.ub.mng.net (publicd.ub.mng.net [202.179.0.88]) by mx1.freebsd.org (Postfix) with ESMTP id 4A1BB8FC12 for ; Sun, 21 Dec 2008 05:17:54 +0000 (UTC) (envelope-from ganbold@micom.mng.net) Received: from [202.179.21.166] (helo=devil.micom.mng.net) by publicd.ub.mng.net with esmtpa (Exim 4.69 (FreeBSD)) (envelope-from ) id 1LEGhC-00020h-4g; Sun, 21 Dec 2008 13:17:42 +0800 Message-ID: <494DD17F.5090903@micom.mng.net> Date: Sun, 21 Dec 2008 13:17:51 +0800 From: Ganbold User-Agent: Thunderbird 2.0.0.17 (X11/20081020) MIME-Version: 1.0 To: "freebsd-current@freebsd.org" , Scott Long References: <494DBBEC.7080107@micom.mng.net> In-Reply-To: <494DBBEC.7080107@micom.mng.net> X-Enigmail-Version: 0.95.7 OpenPGP: id=78F6425E Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Subject: Re: mutex ATAPICAM lock owned at /usr/src/sys/cam/cam_periph.c:316 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Dec 2008 05:17:54 -0000 Ganbold wrote: > Hi, > > I got panic today with recent CURRENT. > > All relevant infos are here: > > http://people.freebsd.org/~ganbold/ddb.txt > http://people.freebsd.org/~ganbold/msgbuf.txt > http://people.freebsd.org/~ganbold/panic.txt > http://people.freebsd.org/~ganbold/version.txt > Replying myself, I guess there should be unlock before releasing the periph at scsi_pass.c: --- /var/current/src/sys/cam/scsi/scsi_pass.c 2008-11-22 16:58:50.000000000 +0800 +++ /usr/src/sys/cam/scsi/scsi_pass.c 2008-12-21 12:59:36.000000000 +0800 @@ -347,8 +347,10 @@ if ((softc->flags & PASS_FLAG_OPEN) == 0) { softc->flags |= PASS_FLAG_OPEN; } else { - /* Device closes aren't symmertical, so fix up the refcount */ + /* Device closes aren't symmetrical, so fix up the refcount */ + cam_periph_unlock(periph); cam_periph_release(periph); + return(EINVAL); } cam_periph_unlock(periph); I guess it needs to be committed. Correct me if I'm wrong here. thanks, Ganbold > thanks, > > Ganbold > > -- Bower's Law: Talent goes where the action is.