diff options
| author | Tony Lindgren <tony@atomide.com> | 2011-03-02 17:07:14 -0800 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2011-03-02 17:07:14 -0800 |
| commit | 12d7d4e0ed8fecf7f74c89483b55b300be6e5901 (patch) | |
| tree | f573761ac752ff04ec445e23aef50adadda49790 /net/ipv4/tcp_input.c | |
| parent | aca6ad073ea820776bf5bdb87cf82eace35042c8 (diff) | |
| parent | 790ab7e92bec24aee3939b300d36b99ab2e3f3ca (diff) | |
| download | olio-linux-3.10-12d7d4e0ed8fecf7f74c89483b55b300be6e5901.tar.xz olio-linux-3.10-12d7d4e0ed8fecf7f74c89483b55b300be6e5901.zip | |
Merge branch 'devel-cleanup' into omap-for-linus
Conflicts:
arch/arm/mach-omap2/timer-gp.c
Diffstat (limited to 'net/ipv4/tcp_input.c')
| -rw-r--r-- | net/ipv4/tcp_input.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index eb7f82ebf4a..65f6c040624 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -1222,7 +1222,7 @@ static int tcp_check_dsack(struct sock *sk, struct sk_buff *ack_skb, } /* D-SACK for already forgotten data... Do dumb counting. */ - if (dup_sack && + if (dup_sack && tp->undo_marker && tp->undo_retrans && !after(end_seq_0, prior_snd_una) && after(end_seq_0, tp->undo_marker)) tp->undo_retrans--; @@ -1299,7 +1299,8 @@ static u8 tcp_sacktag_one(struct sk_buff *skb, struct sock *sk, /* Account D-SACK for retransmitted packet. */ if (dup_sack && (sacked & TCPCB_RETRANS)) { - if (after(TCP_SKB_CB(skb)->end_seq, tp->undo_marker)) + if (tp->undo_marker && tp->undo_retrans && + after(TCP_SKB_CB(skb)->end_seq, tp->undo_marker)) tp->undo_retrans--; if (sacked & TCPCB_SACKED_ACKED) state->reord = min(fack_count, state->reord); |