From owner-freebsd-current@FreeBSD.ORG Fri Jul 11 06:50:58 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DB01237B404 for ; Fri, 11 Jul 2003 06:50:57 -0700 (PDT) Received: from mail.gactr.uga.edu (mail.gactr.uga.edu [128.192.37.25]) by mx1.FreeBSD.org (Postfix) with ESMTP id 267F443FBF for ; Fri, 11 Jul 2003 06:50:56 -0700 (PDT) (envelope-from Robin.Blanchard@gactr.uga.edu) Received: (qmail 84090 invoked from network); 11 Jul 2003 13:50:55 -0000 Received: from unknown (HELO ex.gactr.uga.edu) ([10.10.11.21]) (envelope-sender ) by mail.servers.gactr.gc.nat (qmail-ldap-1.03) with SMTP for ; 11 Jul 2003 13:50:55 -0000 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.0.6375.0 Date: Fri, 11 Jul 2003 09:50:55 -0400 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Witness panic (fxp/polling related) Thread-Index: AcNHrmtyg3/nhlJrRH+GIYYYGzjynAABJIJQ From: "Robin P. Blanchard" To: "John Baldwin" , cc: njl@FreeBSD.org Subject: RE: Witness panic (fxp/polling related) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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: Fri, 11 Jul 2003 13:50:59 -0000 Success !=20 # diff -u if_fxp.c.orig if_fxp.c =20 --- if_fxp.c.orig Sat Jul 5 11:23:44 2003 +++ if_fxp.c Fri Jul 11 09:35:54 2003 @@ -1550,8 +1550,8 @@ if (ether_poll_register(fxp_poll, ifp)) { /* disable interrupts */ CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, = FXP_SCB_INTR_DISABLE); - fxp_poll(ifp, 0, 1); FXP_UNLOCK(sc); + fxp_poll(ifp, 0, 1); return; } #endif > -----Original Message----- > From: John Baldwin [mailto:jhb@FreeBSD.org]=20 > Sent: Friday, July 11, 2003 9:13 AM > To: Robin P. Blanchard > Cc: njl@FreeBSD.org > Subject: Re: Witness panic (fxp/polling related) >=20 >=20 > On Friday 11 July 2003 08:50 am, you wrote: > > Alright...Added WITNESS_DDB to the kernel. Here's (hopefully) more=20 > > useful info. Again, this is using sources dated yesterday morning. > > > > recursed on non-recursive lock (sleep mutex) fxp0 @=20 > > /usr/src/sys/dev/fxp/if_fxp. c:1502 > > first acquired @ /usr/src/sys/dev/fxp/if_fxp.c:1539 >=20 > This is perfect. >=20 > if (ether_poll_register(fxp_poll, ifp)) { > /* disable interrupts */ > CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL,=20 > FXP_SCB_INTR_DISABLE); > fxp_poll(ifp, 0, 1); > FXP_UNLOCK(sc); > return; >=20 > Try moving the FXP_UNLOCK() up before the call to fxp_poll()=20 > (it should be safe to do so). >=20 > --=20 >=20 > John Baldwin <>< =20 > http://www.FreeBSD.org/~jhb/ "Power Users Use > the Power to=20 > Serve!" - http://www.FreeBSD.org/ >=20