浏览代码

Document TX completion bug.

tags/v0.9.3
Michael Brown 17 年前
父节点
当前提交
adb3dd03e5
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10
    0
      src/arch/i386/drivers/net/undinet.c

+ 10
- 0
src/arch/i386/drivers/net/undinet.c 查看文件

@@ -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 );

正在加载...
取消
保存