From owner-cvs-src@FreeBSD.ORG Tue Jun 24 23:18:14 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 9040537B401 for ; Tue, 24 Jun 2003 23:18:14 -0700 (PDT) Received: from rootlabs.com (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with SMTP id B8D7943FF5 for ; Tue, 24 Jun 2003 23:18:12 -0700 (PDT) (envelope-from nate@rootlabs.com) Received: (qmail 71399 invoked by uid 1000); 25 Jun 2003 06:18:15 -0000 Date: Tue, 24 Jun 2003 23:18:15 -0700 (PDT) From: Nate Lawson To: Andrea Campi In-Reply-To: <20030625001613.GA636@webcom.it> Message-ID: <20030624231534.K71390@root.org> References: <200306120337.h5C3bSmB075154@repoman.freebsd.org> <20030625001613.GA636@webcom.it> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: Warner Losh cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/pccbb pccbb.c pccbbvar.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: Wed, 25 Jun 2003 06:18:15 -0000 On Wed, 25 Jun 2003, Andrea Campi wrote: > On Wed, Jun 11, 2003 at 08:37:28PM -0700, Warner Losh wrote: > > Make cbb interrupts MPSAFE: > > o Register ISR INTR_MPSAFE. > ... > > Revision Changes Path > > 1.76 +31 -20 src/sys/dev/pccbb/pccbb.c > > 1.19 +3 -2 src/sys/dev/pccbb/pccbbvar.h > > This commit causes my ep0 to stop working after some traffic is exchanged; > the symptoms are full buffers (e.g. dhclient: send_packet: No buffer space available) > > I traced the issue to this commit by dichotomic search; I also verified reverting to > 1.78 and applying this patch is enough to get it to work again (I'm not actually sure > all three hunks are needed). > > Could you look into this issue? Um, did you cvsup to 1.78? I found an error in the original commit where it locks Giant twice (instead of unlocking) which would give exactly these symptoms. > --- pccbb.c Thu Jun 12 05:37:28 2003 > +++ pccbb.c.fixed Wed Jun 25 02:05:28 2003 > @@ -1087,11 +1086,7 @@ > } > if (sc->flags & CBB_CARD_OK) { > STAILQ_FOREACH(ih, &sc->intr_handlers, entries) { > - if ((ih->flags & INTR_MPSAFE) != 0) > - mtx_lock(&Giant); > (*ih->intr)(ih->arg); > - if ((ih->flags & INTR_MPSAFE) != 0) > - mtx_lock(&Giant); > } > } > } By your patch above, it looks like you were not using 1.78. -Nate