Skip site navigation (1)Skip section navigation (2)
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>