Index: sys/netgraph/ng_ether.c =================================================================== --- sys/netgraph/ng_ether.c +++ sys/netgraph/ng_ether.c @@ -732,15 +732,17 @@ m->m_pkthdr.rcvif = ifp; + NET_EPOCH_ENTER(et); /* Pass the packet to the bridge, it may come back to us */ if (ifp->if_bridge) { BRIDGE_INPUT(ifp, m); - if (m == NULL) + if (m == NULL) { + NET_EPOCH_EXIT(et); return (0); + } } /* Route packet back in */ - NET_EPOCH_ENTER(et); ether_demux(ifp, m); NET_EPOCH_EXIT(et); return (0); Index: sys/netgraph/ng_pppoe.c =================================================================== --- sys/netgraph/ng_pppoe.c +++ sys/netgraph/ng_pppoe.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -763,6 +764,7 @@ static int ng_pppoe_rcvmsg(node_p node, item_p item, hook_p lasthook) { + struct epoch_tracker et; priv_p privp = NG_NODE_PRIVATE(node); struct ngpppoe_init_data *ourmsg = NULL; struct ng_mesg *resp = NULL; @@ -772,6 +774,8 @@ negp neg = NULL; struct ng_mesg *msg; + NET_EPOCH_ENTER(et); + NGI_GET_MSG(item, msg); CTR5(KTR_NET, "%20s: node [%x] (%p) got message %d with cookie %d", __func__, node->nd_ID, node, msg->header.cmd, @@ -1244,6 +1248,9 @@ NG_RESPOND_MSG(error, node, item, resp); /* Free the message and return. */ NG_FREE_MSG(msg); + + NET_EPOCH_EXIT(et); + return(error); }