svn commit: r221172 - stable/7/sys/dev/mxge
Andrew Gallatin
gallatin at FreeBSD.org
Thu Apr 28 14:55:44 UTC 2011
Author: gallatin
Date: Thu Apr 28 14:55:41 2011
New Revision: 221172
URL: http://svn.freebsd.org/changeset/base/221172
Log:
MFC r220424:
Fix a bug in mxge's LRO which can cause dup acks to
get aggregated & hence prevent TCP from entering
fast retransmit.
Pointed out by: jeff
Reviewed by: gnn
Modified:
stable/7/sys/dev/mxge/mxge_lro.c
Directory Properties:
stable/7/sys/ (props changed)
stable/7/sys/cddl/contrib/opensolaris/ (props changed)
stable/7/sys/contrib/dev/acpica/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
Modified: stable/7/sys/dev/mxge/mxge_lro.c
==============================================================================
--- stable/7/sys/dev/mxge/mxge_lro.c Thu Apr 28 14:55:34 2011 (r221171)
+++ stable/7/sys/dev/mxge/mxge_lro.c Thu Apr 28 14:55:41 2011 (r221172)
@@ -234,8 +234,10 @@ mxge_lro_rx(struct mxge_slice_state *ss,
lro->dest_ip == ip->ip_dst.s_addr) {
/* Try to append it */
- if (__predict_false(seq != lro->next_seq)) {
- /* out of order packet */
+ if (__predict_false(seq != lro->next_seq ||
+ (tcp_data_len == 0 &&
+ lro->ack_seq == tcp->th_ack))) {
+ /* out of order packet or dup ack */
SLIST_REMOVE(&ss->lro_active, lro,
lro_entry, next);
mxge_lro_flush(ss, lro);
More information about the svn-src-stable
mailing list