From owner-freebsd-hackers@FreeBSD.ORG Sun Feb 20 22:08:09 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7029C16A4CE for ; Sun, 20 Feb 2005 22:08:09 +0000 (GMT) Received: from hydra.bec.de (www.ostsee-abc.de [62.206.222.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id DE49743D31 for ; Sun, 20 Feb 2005 22:08:08 +0000 (GMT) (envelope-from joerg@britannica.bec.de) Received: from britannica.bec.de (unknown [139.30.55.112]) by hydra.bec.de (Postfix) with ESMTP id E2E4335707 for ; Sun, 20 Feb 2005 23:08:07 +0100 (CET) Received: by britannica.bec.de (Postfix, from userid 1001) id 3A0ECA4; Sun, 20 Feb 2005 23:06:53 +0100 (CET) Date: Sun, 20 Feb 2005 23:06:53 +0100 From: Joerg Sonnenberger To: freebsd-hackers@freebsd.org Message-ID: <20050220220653.GB5041@britannica.bec.de> Mail-Followup-To: freebsd-hackers@freebsd.org References: <200502201936.31366.max@love2party.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.6i Subject: Re: Small bug fix from DragonFly / review requested X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Feb 2005 22:08:09 -0000 On Sun, Feb 20, 2005 at 09:02:25PM +0000, Robert Watson wrote: > > On Sun, 20 Feb 2005, Max Laier wrote: > > > Joerg Sonnenberger has discovered a problem in the snc(4) driver that > > might result in packets showing up on bpf multiple times. See the > > changelog for sys/dev/netif/snc/dp83932.c in their source tree[1]. > > > > Attached is a fix for HEAD. I am almost sure that it is right, but I'd > > welcome a review as there might be a chance that sonicput() and the TX > > interrupt free the mbuf before it gets to bpf. From my reading it seems > > that the mbuf is "safe" until sc->mtd_free is altered (see comment). > > This change seems fine -- in the current world order, Giant will prevent > the driver from preempting itself and freeing the mbuf, and if we get > per-softc locking for snc, presumably that locking will provide the same > protection. It may be worth annotating that we rely on non-preemption by > the interrupt handler to avoid the mbuf being freed with a comment. Quite a lot of the network drivers actually fully depend on that. So it might be better to add it to a global list of stuff to keep in mind :) Joerg