From owner-freebsd-current@FreeBSD.ORG Fri Jul 4 07:28:22 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 836D337B401 for ; Fri, 4 Jul 2003 07:28:22 -0700 (PDT) Received: from storm.FreeBSD.org.uk (storm.FreeBSD.org.uk [194.242.157.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7990D44017 for ; Fri, 4 Jul 2003 07:28:21 -0700 (PDT) (envelope-from mark@grondar.org) Received: from storm.FreeBSD.org.uk (Ugrondar@localhost [127.0.0.1]) by storm.FreeBSD.org.uk (8.12.9/8.12.9) with ESMTP id h64ESGE4080785; Fri, 4 Jul 2003 15:28:16 +0100 (BST) (envelope-from mark@grondar.org) Received: (from Ugrondar@localhost)h64ESG51080784; Fri, 4 Jul 2003 15:28:16 +0100 (BST) X-Authentication-Warning: storm.FreeBSD.org.uk: Ugrondar set sender to mark@grondar.org using -f Received: from grondar.org (localhost [127.0.0.1])h64EQ78E043181; Fri, 4 Jul 2003 15:26:07 +0100 (BST) (envelope-from mark@grondar.org) From: Mark Murray Message-Id: <200307041426.h64EQ78E043181@grimreaper.grondar.org> To: "M. Warner Losh" In-Reply-To: Your message of "Fri, 04 Jul 2003 22:04:34 +0900." <20030704.220434.61850465.imp@bsdimp.com> Date: Fri, 04 Jul 2003 15:26:07 +0100 Sender: mark@grondar.org X-Spam-Status: No, hits=0.2 required=5.0 tests=EMAIL_ATTRIBUTION,FROM_NO_LOWER,IN_REP_TO, QUOTED_EMAIL_TEXT,REPLY_WITH_QUOTES version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) cc: current@freebsd.org Subject: Re: 3COM ep0 pccard device broken in current. 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, 04 Jul 2003 14:28:22 -0000 "M. Warner Losh" writes: > In message: <200307041246.h64Cku8E042346@grimreaper.grondar.org> > Mark Murray writes: > : "M. Warner Losh" writes: > : > Have you gotten all of the recent changes to current wrt ep0? It was > : > broken by my making cbbintr mpsafe. Well, it was broken a long time > : > ago, my change just opened a race that used to be won, but now is > : > lost. > : > : Yup. I believe so, but please confirm where the change was to be sure? > > There were two changes. One is in pccbb.c that makes things a MPSAFE > interrupt. You could revert to version 1.175 of pccbb.c. I'll play with that in a few hours when I get home. > For ep.c, you need the following or newer You mean if_ep.c, right? > Revision 1.115 / (download) - annotate - [select for diffs], Thu Jun > 26 13:27:44 2003 UTC (7 days, 23 hours ago) by mux > Changes since 1.114: +5 -7 lines > > Fix a race condition that was introduced since pccbb interrupts are > flag'ed INTR_MPSAFE. In ep_if_start(), use the IF_DEQUEUE macro to > grab the next mbuf to send, and use IF_PREPEND if the card is busy > and we actually can't handle it right now. > > The old code was first getting the mbuf by taking it from the queue > without using the macros, thus without locking, and without removing > it from the queue either. It was later assuming that IF_DEQUEUE would > give him this same mbuf. > > Tested by: mich I played with this, but without playing with the pccbb.c stuff. I'll give it a go tonight. M -- Mark Murray iumop ap!sdn w,I idlaH