Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/qlcnic/qlcnic_init.c net/ipv4/ip_output.c
This commit is contained in:
@@ -475,8 +475,22 @@ extern unsigned int tcp_current_mss(struct sock *sk);
|
||||
/* Bound MSS / TSO packet size with the half of the window */
|
||||
static inline int tcp_bound_to_half_wnd(struct tcp_sock *tp, int pktsize)
|
||||
{
|
||||
if (tp->max_window && pktsize > (tp->max_window >> 1))
|
||||
return max(tp->max_window >> 1, 68U - tp->tcp_header_len);
|
||||
int cutoff;
|
||||
|
||||
/* When peer uses tiny windows, there is no use in packetizing
|
||||
* to sub-MSS pieces for the sake of SWS or making sure there
|
||||
* are enough packets in the pipe for fast recovery.
|
||||
*
|
||||
* On the other hand, for extremely large MSS devices, handling
|
||||
* smaller than MSS windows in this way does make sense.
|
||||
*/
|
||||
if (tp->max_window >= 512)
|
||||
cutoff = (tp->max_window >> 1);
|
||||
else
|
||||
cutoff = tp->max_window;
|
||||
|
||||
if (cutoff && pktsize > cutoff)
|
||||
return max_t(int, cutoff, 68U - tp->tcp_header_len);
|
||||
else
|
||||
return pktsize;
|
||||
}
|
||||
|
Reference in New Issue
Block a user