Commit ba244fe9005323452428fee4b4b7d0c70a06b627
1 parent
c127437641
Exists in
master
and in
4 other branches
[TCP]: Fix tcp_tso_should_defer() when limit>=65536
That's >= a full sized TSO frame, so we should always return 0 in that case. Based upon a report and initial patch from Lachlan Andrew, final patch suggested by Herbert Xu. Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 1 changed file with 4 additions and 0 deletions Side-by-side Diff
net/ipv4/tcp_output.c
| ... | ... | @@ -1036,6 +1036,10 @@ |
| 1036 | 1036 | |
| 1037 | 1037 | limit = min(send_win, cong_win); |
| 1038 | 1038 | |
| 1039 | + /* If a full-sized TSO skb can be sent, do it. */ | |
| 1040 | + if (limit >= 65536) | |
| 1041 | + return 0; | |
| 1042 | + | |
| 1039 | 1043 | if (sysctl_tcp_tso_win_divisor) { |
| 1040 | 1044 | u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache); |
| 1041 | 1045 |