Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Feb 2005 21:02:25 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Max Laier <max@love2party.net>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Small bug fix from DragonFly / review requested
Message-ID:  <Pine.NEB.3.96L.1050220210020.13235B-100000@fledge.watson.org>
In-Reply-To: <200502201936.31366.max@love2party.net>

next in thread | previous in thread | raw e-mail | index | archive | help

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. 

Robert N M Watson



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1050220210020.13235B-100000>