summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/net/if_ethersubr.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/net/if_ethersubr.c')
-rw-r--r--freebsd/sys/net/if_ethersubr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/freebsd/sys/net/if_ethersubr.c b/freebsd/sys/net/if_ethersubr.c
index 02a5d002..b7c48731 100644
--- a/freebsd/sys/net/if_ethersubr.c
+++ b/freebsd/sys/net/if_ethersubr.c
@@ -662,8 +662,10 @@ ether_input(struct ifnet *ifp, struct mbuf *m)
m = (*lagg_input_p)(ifp, m);
if (m != NULL)
ifp = m->m_pkthdr.rcvif;
- else
+ else {
+ CURVNET_RESTORE();
return;
+ }
}
/*
@@ -682,6 +684,7 @@ ether_input(struct ifnet *ifp, struct mbuf *m)
#endif
ifp->if_ierrors++;
m_freem(m);
+ CURVNET_RESTORE();
return;
}
@@ -694,6 +697,8 @@ ether_input(struct ifnet *ifp, struct mbuf *m)
m_adj(m, ETHER_VLAN_ENCAP_LEN);
}
+ M_SETFIB(m, ifp->if_fib);
+
/* Allow ng_ether(4) to claim this frame. */
if (IFP2AC(ifp)->ac_netgraph != NULL) {
KASSERT(ng_ether_input_p != NULL,