From: Michael Brown Date: Tue, 3 Jul 2007 12:17:58 +0000 (+0100) Subject: Document TX completion bug. X-Git-Tag: v0.9.3~323^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=adb3dd03e58baba29808971d5bc718b0d5958a41;p=thirdparty%2Fipxe.git Document TX completion bug. --- diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/i386/drivers/net/undinet.c index 6bc0fc363..071065914 100644 --- a/src/arch/i386/drivers/net/undinet.c +++ b/src/arch/i386/drivers/net/undinet.c @@ -333,6 +333,16 @@ static int undinet_transmit ( struct net_device *netdev, size_t len = iob_len ( iobuf ); int rc; + /* Technically, we ought to make sure that the previous + * transmission has completed before we re-use the buffer. + * However, this would break a gPXE-running-over-Etherboot + * setup, since Etherboot fails to generate TX completions. + * In practice this won't be a problem, since our TX datapath + * has a very low packet volume and we can get away with + * assuming that a TX will be complete by the time we want to + * transmit the next packet. + */ + /* Copy packet to UNDI I/O buffer */ if ( len > sizeof ( basemem_packet ) ) len = sizeof ( basemem_packet );