diff options
-rw-r--r-- | sys/dev/pci/if_txp.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/pci/if_txp.c b/sys/dev/pci/if_txp.c index 13b4f31d207..134b930918d 100644 --- a/sys/dev/pci/if_txp.c +++ b/sys/dev/pci/if_txp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_txp.c,v 1.24 2001/05/08 03:52:43 jason Exp $ */ +/* $OpenBSD: if_txp.c,v 1.25 2001/05/08 05:22:01 jason Exp $ */ /* * Copyright (c) 2001 @@ -1143,7 +1143,7 @@ txp_start(ifp) struct txp_tx_ring *r = &sc->sc_txhir; struct txp_tx_desc *txd; struct txp_frag_desc *fxd; - struct mbuf *m; + struct mbuf *mhead, *m; u_int32_t firstprod, firstcnt, prod, cnt; #if NVLAN > 0 struct ifvlan *ifv; @@ -1159,6 +1159,7 @@ txp_start(ifp) IF_DEQUEUE(&ifp->if_snd, m); if (m == NULL) break; + mhead = m; if ((TX_ENTRIES - cnt) < 4) { ifp->if_flags |= IFF_OACTIVE; @@ -1221,6 +1222,12 @@ txp_start(ifp) } ifp->if_timer = 5; + +#if NBPFILTER > 0 + if (ifp->if_bpf) + bpf_mtap(ifp->if_bpf, mhead); +#endif + WRITE_REG(sc, r->r_reg, TXP_IDX2OFFSET(prod)); } |