aboutsummaryrefslogtreecommitdiff
path: root/sys/netgraph
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2019-10-10 23:47:14 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2019-10-10 23:47:14 +0000
commit57985d11b431632441e281752b5fe70ed7515941 (patch)
treee19f4e6ca7e2831c577641226f18fd971bdf7844 /sys/netgraph
parentfb3fc771f6fcfda3e55b4abbbc2c3a0503af2619 (diff)
Notes
Diffstat (limited to 'sys/netgraph')
-rw-r--r--sys/netgraph/ng_ether.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c
index 3b1a9efc849e1..b307b3d5ab88d 100644
--- a/sys/netgraph/ng_ether.c
+++ b/sys/netgraph/ng_ether.c
@@ -578,6 +578,7 @@ ng_ether_rcvmsg(node_p node, item_p item, hook_p lasthook)
case NGM_ETHER_ADD_MULTI:
{
struct sockaddr_dl sa_dl;
+ struct epoch_tracker et;
struct ifmultiaddr *ifma;
if (msg->header.arglen != ETHER_ADDR_LEN) {
@@ -597,10 +598,10 @@ ng_ether_rcvmsg(node_p node, item_p item, hook_p lasthook)
* lose a race while we check if the membership
* already exists.
*/
- if_maddr_rlock(priv->ifp);
+ NET_EPOCH_ENTER(et);
ifma = if_findmulti(priv->ifp,
(struct sockaddr *)&sa_dl);
- if_maddr_runlock(priv->ifp);
+ NET_EPOCH_EXIT(et);
if (ifma != NULL) {
error = EADDRINUSE;
} else {