diff options
author | Michael Brown | 2007-07-03 14:17:58 +0200 |
---|---|---|
committer | Michael Brown | 2007-07-03 14:17:58 +0200 |
commit | adb3dd03e58baba29808971d5bc718b0d5958a41 (patch) | |
tree | 70abfc695ff7c21c1368b16253e59e4630a6969d /src/arch/i386/drivers/net/undinet.c | |
parent | Enable/disable interrupts in driver open/close. (diff) | |
download | ipxe-adb3dd03e58baba29808971d5bc718b0d5958a41.tar.gz ipxe-adb3dd03e58baba29808971d5bc718b0d5958a41.tar.xz ipxe-adb3dd03e58baba29808971d5bc718b0d5958a41.zip |
Document TX completion bug.
Diffstat (limited to 'src/arch/i386/drivers/net/undinet.c')
-rw-r--r-- | src/arch/i386/drivers/net/undinet.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/i386/drivers/net/undinet.c index 6bc0fc36..07106591 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 ); |