Date: Wed, 18 Apr 2012 20:30:46 -0700 From: Adrian Chadd <adrian@freebsd.org> To: "Alexander V. Chernikov" <melifaro@freebsd.org> Cc: freebsd-net@freebsd.org Subject: Re: svn commit: r233937 - in head/sys: kern net security/mac Message-ID: <CAJ-VmokmVwXUamZ=VcmxXOdukxzcBeemaoEpP7jtOTZe58drzg@mail.gmail.com> In-Reply-To: <CAJ-Vmo=dLhW8GjBMB-snHcCd1e3aaoqasBQkmqLRHwSQt5B5Xg@mail.gmail.com> References: <201204060653.q366rwLa096182@svn.freebsd.org> <4F7E9413.20602@FreeBSD.org> <CAJ-VmonJ%2BZXrwgrwc3eoDvf6oMmip9zf2TFLpvjqahHgdcZdxw@mail.gmail.com> <4F8BBD4E.1040106@FreeBSD.org> <CAJ-Vmo=dLhW8GjBMB-snHcCd1e3aaoqasBQkmqLRHwSQt5B5Xg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hi,
Here's what I have thus far.
Adrian
[-- Attachment #2 --]
Index: sys/net/bpf.c
===================================================================
--- sys/net/bpf.c (revision 234369)
+++ sys/net/bpf.c (working copy)
@@ -1747,12 +1747,13 @@
panic("bpf_setif: bufmode %d", d->bd_bufmode);
}
if (bp != d->bd_bif) {
+ BPF_LOCK();
if (d->bd_bif)
/*
* Detach if attached to something else.
*/
bpf_detachd(d);
-
+ BPF_UNLOCK();
bpf_attachd(d, bp);
}
BPFD_WLOCK(d);
@@ -2393,7 +2394,9 @@
ndetached++;
#endif
while ((d = LIST_FIRST(&bp->bif_dlist)) != NULL) {
+ BPF_LOCK();
bpf_detachd(d);
+ BPF_UNLOCK();
BPFD_WLOCK(d);
bpf_wakeup(d);
BPFD_WUNLOCK(d);
@@ -2462,7 +2465,9 @@
BPF_UNLOCK();
if (bp != NULL) {
opromisc = d->bd_promisc;
+ BPF_LOCK();
bpf_detachd(d);
+ BPF_UNLOCK();
bpf_attachd(d, bp);
BPFD_WLOCK(d);
reset_d(d);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmokmVwXUamZ=VcmxXOdukxzcBeemaoEpP7jtOTZe58drzg>
