summaryrefslogtreecommitdiffstats
path: root/sys/dev
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
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')
-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