summaryrefslogtreecommitdiffstats
path: root/secure
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2004-01-08 06:22:15 +0000
committertruckman <truckman@FreeBSD.org>2004-01-08 06:22:15 +0000
commit21e6787900aa26e4eab836a91d34f366df0d97e7 (patch)
tree64e45a82ea2f7001592cfa29c880d379095d596f /secure
parent7289c3aadd278486c0c87e9ee2a3bc26cc82f60c (diff)
downloadFreeBSD-src-21e6787900aa26e4eab836a91d34f366df0d97e7.zip
FreeBSD-src-21e6787900aa26e4eab836a91d34f366df0d97e7.tar.gz
The transmit frame status is stored in the last transmit descriptor for the
frame, not the first. It is probably also not safe to free the mbuf chain as soon as the OWN bit is cleared on the first descriptor since the chip may not be done copying the frame into the transmit FIFO. Revert the part of of busdma conversion (if_dc.c rev 1.115) which changed dc_txeof() to look for the status in the first descriptor and free the mbuf chain when processing the first descriptor for the frame, and revert the matching changes elsewhere in the driver. This part of the busdma change caused the driver to report spurious collisions and output errors, even when running in full-duplex mode. Reverting the mbuf chain handling slightly complicates dc_dma_map_txbuf(), since it is responsible for setting the OWN bits on the descriptors, but does not normally have direct access to the mbuf chain. Tested by: Dejan Lesjak <dejan.lesjak at ijs.si> alpha/<Intel 21143 10/100BaseTX> "Xin LI" <delphij at frontfree.net> i386/<Macronix 98713 10/100BaseTX> Wiktor Niesiobedzki <bsd at w.evip.pl> i386/<3Com OfficeConnect 10/100B> Reviewed by: mux
Diffstat (limited to 'secure')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud