diff options
author | jlemon <jlemon@FreeBSD.org> | 2000-05-06 15:53:59 +0000 |
---|---|---|
committer | jlemon <jlemon@FreeBSD.org> | 2000-05-06 15:53:59 +0000 |
commit | dc25977c3ba7edfbef0e01b51bc5920cb8be8e8d (patch) | |
tree | 69ca10810747832f1b236ffc808cdd13d21c43f2 /sys/pci/if_de.c | |
parent | 96c3d41c15a7f55e4dfa247fe77d91c53e8c5a26 (diff) | |
download | FreeBSD-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/pci/if_de.c')
-rw-r--r-- | sys/pci/if_de.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/pci/if_de.c b/sys/pci/if_de.c index 32d68d0..08351b3 100644 --- a/sys/pci/if_de.c +++ b/sys/pci/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. */ |