]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[rtl8139] Check for oversized packets when transmitting
authorMichael Brown <mcb30@ipxe.org>
Sun, 5 Sep 2010 17:52:57 +0000 (18:52 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sun, 5 Sep 2010 17:58:10 +0000 (18:58 +0100)
commite9efbcd84ca910b416cb5869a9b92f0e2e73e72c
treef3ac143e7853669f36bace53afb926b5ccff2b30
parentc8199aacaa01a5ef3a13d958a8a46206bd0a6eea
[rtl8139] Check for oversized packets when transmitting

An attempt to transmit a packet of 8192 bytes or larger will collide
with the status bits in the TX descriptor.  This gives the appearance
of the network card's transmit data path having just suddenly stopped
responding; iPXE is waiting for the card to report a TX completion
but, because of the status bit collision, the card thinks that the
descriptor has not yet been written.

Fix by explicitly checking for oversized packets in rtl_transmit().

Discovered during Fibre Channel over Ethernet testing, and debugged by
using gdb to examine the state of the emulated rtl8139 card in qemu.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/rtl8139.c