diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-07 23:35:40 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-07 23:35:40 -0400 |
commit | 0d6c4a2e4641bbc556dd74d3aa158c413a972492 (patch) | |
tree | da944af17682659bb433dc2282dcb48380c14cd1 /net/ipv4/tcp_input.c | |
parent | 6e06c0e2347ec79d0bd5702b2438fe883f784545 (diff) | |
parent | 1c430a727fa512500a422ffe4712166c550ea06a (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/intel/e1000e/param.c
drivers/net/wireless/iwlwifi/iwl-agn-rx.c
drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
drivers/net/wireless/iwlwifi/iwl-trans.h
Resolved the iwlwifi conflict with mainline using 3-way diff posted
by John Linville and Stephen Rothwell. In 'net' we added a bug
fix to make iwlwifi report a more accurate skb->truesize but this
conflicted with RX path changes that happened meanwhile in net-next.
In e1000e a conflict arose in the validation code for settings of
adapter->itr. 'net-next' had more sophisticated logic so that
logic was used.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 7b2d351f24db..eb58b94301ec 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -85,7 +85,7 @@ int sysctl_tcp_ecn __read_mostly = 2; | |||
85 | EXPORT_SYMBOL(sysctl_tcp_ecn); | 85 | EXPORT_SYMBOL(sysctl_tcp_ecn); |
86 | int sysctl_tcp_dsack __read_mostly = 1; | 86 | int sysctl_tcp_dsack __read_mostly = 1; |
87 | int sysctl_tcp_app_win __read_mostly = 31; | 87 | int sysctl_tcp_app_win __read_mostly = 31; |
88 | int sysctl_tcp_adv_win_scale __read_mostly = 2; | 88 | int sysctl_tcp_adv_win_scale __read_mostly = 1; |
89 | EXPORT_SYMBOL(sysctl_tcp_adv_win_scale); | 89 | EXPORT_SYMBOL(sysctl_tcp_adv_win_scale); |
90 | 90 | ||
91 | int sysctl_tcp_stdurg __read_mostly; | 91 | int sysctl_tcp_stdurg __read_mostly; |
@@ -496,7 +496,7 @@ static inline void tcp_rcv_rtt_measure(struct tcp_sock *tp) | |||
496 | goto new_measure; | 496 | goto new_measure; |
497 | if (before(tp->rcv_nxt, tp->rcv_rtt_est.seq)) | 497 | if (before(tp->rcv_nxt, tp->rcv_rtt_est.seq)) |
498 | return; | 498 | return; |
499 | tcp_rcv_rtt_update(tp, jiffies - tp->rcv_rtt_est.time, 1); | 499 | tcp_rcv_rtt_update(tp, tcp_time_stamp - tp->rcv_rtt_est.time, 1); |
500 | 500 | ||
501 | new_measure: | 501 | new_measure: |
502 | tp->rcv_rtt_est.seq = tp->rcv_nxt + tp->rcv_wnd; | 502 | tp->rcv_rtt_est.seq = tp->rcv_nxt + tp->rcv_wnd; |
@@ -2904,11 +2904,14 @@ static inline void tcp_complete_cwr(struct sock *sk) | |||
2904 | 2904 | ||
2905 | /* Do not moderate cwnd if it's already undone in cwr or recovery. */ | 2905 | /* Do not moderate cwnd if it's already undone in cwr or recovery. */ |
2906 | if (tp->undo_marker) { | 2906 | if (tp->undo_marker) { |
2907 | if (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR) | 2907 | if (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR) { |
2908 | tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh); | 2908 | tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh); |
2909 | else /* PRR */ | 2909 | tp->snd_cwnd_stamp = tcp_time_stamp; |
2910 | } else if (tp->snd_ssthresh < TCP_INFINITE_SSTHRESH) { | ||
2911 | /* PRR algorithm. */ | ||
2910 | tp->snd_cwnd = tp->snd_ssthresh; | 2912 | tp->snd_cwnd = tp->snd_ssthresh; |
2911 | tp->snd_cwnd_stamp = tcp_time_stamp; | 2913 | tp->snd_cwnd_stamp = tcp_time_stamp; |
2914 | } | ||
2912 | } | 2915 | } |
2913 | tcp_ca_event(sk, CA_EVENT_COMPLETE_CWR); | 2916 | tcp_ca_event(sk, CA_EVENT_COMPLETE_CWR); |
2914 | } | 2917 | } |