diff options
author | sam <sam@FreeBSD.org> | 2009-04-27 22:06:49 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2009-04-27 22:06:49 +0000 |
commit | 6079771a5e7e34e7e3d096d53e76dee6daa7d982 (patch) | |
tree | 063564bee5d9212bc88371c1aa4d02c13ea51222 /sys/net/if_bridge.c | |
parent | 28a14333c36cd488eeb0f7597633a62b7585987f (diff) | |
download | FreeBSD-src-6079771a5e7e34e7e3d096d53e76dee6daa7d982.zip FreeBSD-src-6079771a5e7e34e7e3d096d53e76dee6daa7d982.tar.gz |
use if_transmit intead of direct frobbing of the if_snd q; this is no
longer allowed
Identified by: rwatson
Reviewed by: kmacy
Diffstat (limited to 'sys/net/if_bridge.c')
-rw-r--r-- | sys/net/if_bridge.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index ef8cf5b..70db614 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -1761,24 +1761,15 @@ bridge_enqueue(struct bridge_softc *sc, struct ifnet *dst_ifp, struct mbuf *m) } if (err == 0) - IFQ_ENQUEUE(&dst_ifp->if_snd, m, err); + dst_ifp->if_transmit(dst_ifp, m); } if (err == 0) { - sc->sc_ifp->if_opackets++; sc->sc_ifp->if_obytes += len; - - dst_ifp->if_obytes += len; - - if (mflags & M_MCAST) { + if (mflags & M_MCAST) sc->sc_ifp->if_omcasts++; - dst_ifp->if_omcasts++; - } } - - if ((dst_ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) - (*dst_ifp->if_start)(dst_ifp); } /* |