summaryrefslogtreecommitdiffstats
path: root/sys/dev/de
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2000-05-06 15:53:59 +0000
committerjlemon <jlemon@FreeBSD.org>2000-05-06 15:53:59 +0000
commitdc25977c3ba7edfbef0e01b51bc5920cb8be8e8d (patch)
tree69ca10810747832f1b236ffc808cdd13d21c43f2 /sys/dev/de
parent96c3d41c15a7f55e4dfa247fe77d91c53e8c5a26 (diff)
downloadFreeBSD-src-dc25977c3ba7edfbef0e01b51bc5920cb8be8e8d.zip
FreeBSD-src-dc25977c3ba7edfbef0e01b51bc5920cb8be8e8d.tar.gz
Bounce a copy of the mbuf to the bpf listener when we submit the frames
for transmit to the adapter, not when we receive a transmit interrupt indicating that they were sent. This fix now allows tcpdump to produce sane results by recording the timestamp at the point where the mbuf was actually transmitted.
Diffstat (limited to 'sys/dev/de')
-rw-r--r--sys/dev/de/if_de.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/de/if_de.c b/sys/dev/de/if_de.c
index 32d68d0..08351b3 100644
--- a/sys/dev/de/if_de.c
+++ b/sys/dev/de/if_de.c
@@ -3737,8 +3737,6 @@ tulip_tx_intr(
TULIP_TXMAP_POSTSYNC(sc, map);
sc->tulip_txmaps[sc->tulip_txmaps_free++] = map;
#endif /* TULIP_BUS_DMA */
- if (sc->tulip_if.if_bpf != NULL)
- bpf_mtap(&sc->tulip_if, m);
m_freem(m);
#if defined(TULIP_DEBUG)
} else {
@@ -4364,6 +4362,12 @@ tulip_txput(
#endif /* TULIP_BUS_DMA */
/*
+ * bounce a copy to the bpf listener, if any.
+ */
+ if (sc->tulip_if.if_bpf != NULL)
+ bpf_mtap(&sc->tulip_if, m);
+
+ /*
* The descriptors have been filled in. Now get ready
* to transmit.
*/
OpenPOWER on IntegriCloud