svn commit: r353695 - head/sys/net
Gleb Smirnoff
glebius at FreeBSD.org
Thu Oct 17 20:18:08 UTC 2019
Author: glebius
Date: Thu Oct 17 20:18:07 2019
New Revision: 353695
URL: https://svnweb.freebsd.org/changeset/base/353695
Log:
Revert two parts of r353292 that enter epoch when processing vlan capabilities.
It could be that entering epoch isn't necessary here, but better take a
conservative approach.
Submitted by: kp
Modified:
head/sys/net/if_vlan.c
Modified: head/sys/net/if_vlan.c
==============================================================================
--- head/sys/net/if_vlan.c Thu Oct 17 20:10:32 2019 (r353694)
+++ head/sys/net/if_vlan.c Thu Oct 17 20:18:07 2019 (r353695)
@@ -1625,14 +1625,16 @@ vlan_setflags(struct ifnet *ifp, int status)
static void
vlan_link_state(struct ifnet *ifp)
{
+ struct epoch_tracker et;
struct ifvlantrunk *trunk;
struct ifvlan *ifv;
- NET_EPOCH_ASSERT();
-
+ NET_EPOCH_ENTER(et);
trunk = ifp->if_vlantrunk;
- if (trunk == NULL)
+ if (trunk == NULL) {
+ NET_EPOCH_EXIT(et);
return;
+ }
TRUNK_WLOCK(trunk);
VLAN_FOREACH(ifv, trunk) {
@@ -1641,6 +1643,7 @@ vlan_link_state(struct ifnet *ifp)
trunk->parent->if_link_state);
}
TRUNK_WUNLOCK(trunk);
+ NET_EPOCH_EXIT(et);
}
static void
@@ -1770,6 +1773,7 @@ vlan_capabilities(struct ifvlan *ifv)
static void
vlan_trunk_capabilities(struct ifnet *ifp)
{
+ struct epoch_tracker et;
struct ifvlantrunk *trunk;
struct ifvlan *ifv;
@@ -1779,8 +1783,10 @@ vlan_trunk_capabilities(struct ifnet *ifp)
VLAN_SUNLOCK();
return;
}
+ NET_EPOCH_ENTER(et);
VLAN_FOREACH(ifv, trunk)
vlan_capabilities(ifv);
+ NET_EPOCH_EXIT(et);
VLAN_SUNLOCK();
}
More information about the svn-src-all
mailing list