svn commit: r339772 - stable/12/sys/net
Andrey V. Elsukov
ae at FreeBSD.org
Fri Oct 26 10:20:05 UTC 2018
Author: ae
Date: Fri Oct 26 10:20:03 2018
New Revision: 339772
URL: https://svnweb.freebsd.org/changeset/base/339772
Log:
MFC r339532 (by glebius):
Fix exiting an epoch(9) we never entered. May happen only with MAC.
Approved by: re (kib)
Modified:
stable/12/sys/net/if_gif.c
stable/12/sys/net/if_gre.c
stable/12/sys/net/if_me.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/net/if_gif.c
==============================================================================
--- stable/12/sys/net/if_gif.c Fri Oct 26 08:52:22 2018 (r339771)
+++ stable/12/sys/net/if_gif.c Fri Oct 26 10:20:03 2018 (r339772)
@@ -272,6 +272,7 @@ gif_transmit(struct ifnet *ifp, struct mbuf *m)
uint8_t proto, ecn;
int error;
+ GIF_RLOCK();
#ifdef MAC
error = mac_ifnet_check_transmit(ifp, m);
if (error) {
@@ -280,7 +281,6 @@ gif_transmit(struct ifnet *ifp, struct mbuf *m)
}
#endif
error = ENETDOWN;
- GIF_RLOCK();
sc = ifp->if_softc;
if ((ifp->if_flags & IFF_MONITOR) != 0 ||
(ifp->if_flags & IFF_UP) == 0 ||
Modified: stable/12/sys/net/if_gre.c
==============================================================================
--- stable/12/sys/net/if_gre.c Fri Oct 26 08:52:22 2018 (r339771)
+++ stable/12/sys/net/if_gre.c Fri Oct 26 10:20:03 2018 (r339772)
@@ -550,6 +550,7 @@ gre_transmit(struct ifnet *ifp, struct mbuf *m)
uint16_t proto;
len = 0;
+ GRE_RLOCK();
#ifdef MAC
error = mac_ifnet_check_transmit(ifp, m);
if (error) {
@@ -558,7 +559,6 @@ gre_transmit(struct ifnet *ifp, struct mbuf *m)
}
#endif
error = ENETDOWN;
- GRE_RLOCK();
sc = ifp->if_softc;
if ((ifp->if_flags & IFF_MONITOR) != 0 ||
(ifp->if_flags & IFF_UP) == 0 ||
Modified: stable/12/sys/net/if_me.c
==============================================================================
--- stable/12/sys/net/if_me.c Fri Oct 26 08:52:22 2018 (r339771)
+++ stable/12/sys/net/if_me.c Fri Oct 26 10:20:03 2018 (r339772)
@@ -479,13 +479,13 @@ me_transmit(struct ifnet *ifp, struct mbuf *m)
uint32_t af;
int error, hlen, plen;
+ ME_RLOCK();
#ifdef MAC
error = mac_ifnet_check_transmit(ifp, m);
if (error != 0)
goto drop;
#endif
error = ENETDOWN;
- ME_RLOCK();
sc = ifp->if_softc;
if (sc == NULL || !ME_READY(sc) ||
(ifp->if_flags & IFF_MONITOR) != 0 ||
More information about the svn-src-stable
mailing list