|
@@ -333,6 +333,16 @@ static int undinet_transmit ( struct net_device *netdev,
|
333
|
333
|
size_t len = iob_len ( iobuf );
|
334
|
334
|
int rc;
|
335
|
335
|
|
|
336
|
+ /* Technically, we ought to make sure that the previous
|
|
337
|
+ * transmission has completed before we re-use the buffer.
|
|
338
|
+ * However, this would break a gPXE-running-over-Etherboot
|
|
339
|
+ * setup, since Etherboot fails to generate TX completions.
|
|
340
|
+ * In practice this won't be a problem, since our TX datapath
|
|
341
|
+ * has a very low packet volume and we can get away with
|
|
342
|
+ * assuming that a TX will be complete by the time we want to
|
|
343
|
+ * transmit the next packet.
|
|
344
|
+ */
|
|
345
|
+
|
336
|
346
|
/* Copy packet to UNDI I/O buffer */
|
337
|
347
|
if ( len > sizeof ( basemem_packet ) )
|
338
|
348
|
len = sizeof ( basemem_packet );
|