svn commit: r242148 - user/andre/tcp_workqueue/sys/netinet
Andre Oppermann
andre at FreeBSD.org
Fri Oct 26 16:52:56 UTC 2012
Author: andre
Date: Fri Oct 26 16:52:56 2012
New Revision: 242148
URL: http://svn.freebsd.org/changeset/base/242148
Log:
Revert r242001. All NICs supporting TSO also support doing DMA
chains larger than 64K and hacking around it in TCP is not correct.
The correct fix is within the drivers artificially limiting their
DMA chain length.
Discussed with: yongari
Modified:
user/andre/tcp_workqueue/sys/netinet/tcp_output.c
Modified: user/andre/tcp_workqueue/sys/netinet/tcp_output.c
==============================================================================
--- user/andre/tcp_workqueue/sys/netinet/tcp_output.c Fri Oct 26 16:47:52 2012 (r242147)
+++ user/andre/tcp_workqueue/sys/netinet/tcp_output.c Fri Oct 26 16:52:56 2012 (r242148)
@@ -772,12 +772,9 @@ send:
* Limit a burst to IP_MAXPACKET minus IP,
* TCP and options length to keep ip->ip_len
* from overflowing.
- * Deduct max_linkhdr as well to prevent the
- * eventual DMA chain from exceeding IP_MAXPACKET
- * (64K) as well.
*/
- if (len > IP_MAXPACKET - (hdrlen + max_linkhdr)) {
- len = IP_MAXPACKET - (hdrlen + max_linkhdr);
+ if (len > IP_MAXPACKET - hdrlen) {
+ len = IP_MAXPACKET - hdrlen;
sendalot = 1;
}
@@ -808,7 +805,7 @@ send:
} else
tso = 0;
- KASSERT(len + hdrlen + ipoptlen + max_linkhdr <= IP_MAXPACKET,
+ KASSERT(len + hdrlen + ipoptlen <= IP_MAXPACKET,
("%s: len > IP_MAXPACKET", __func__));
/*#ifdef DIAGNOSTIC*/
More information about the svn-src-user
mailing list