aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/tcp_input.c3
-rw-r--r--net/ipv4/tcp_output.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 6097491aa9fc..393c56921dcb 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3739,7 +3739,8 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx,
3739 break; 3739 break;
3740 case TCPOPT_WINDOW: 3740 case TCPOPT_WINDOW:
3741 if (opsize == TCPOLEN_WINDOW && th->syn && 3741 if (opsize == TCPOLEN_WINDOW && th->syn &&
3742 !estab && sysctl_tcp_window_scaling) { 3742 !estab && sysctl_tcp_window_scaling &&
3743 !dst_feature(dst, RTAX_FEATURE_NO_WSCALE)) {
3743 __u8 snd_wscale = *(__u8 *)ptr; 3744 __u8 snd_wscale = *(__u8 *)ptr;
3744 opt_rx->wscale_ok = 1; 3745 opt_rx->wscale_ok = 1;
3745 if (snd_wscale > 14) { 3746 if (snd_wscale > 14) {
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 8819eba8ebb8..616c686ca253 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -496,7 +496,8 @@ static unsigned tcp_syn_options(struct sock *sk, struct sk_buff *skb,
496 opts->tsecr = tp->rx_opt.ts_recent; 496 opts->tsecr = tp->rx_opt.ts_recent;
497 size += TCPOLEN_TSTAMP_ALIGNED; 497 size += TCPOLEN_TSTAMP_ALIGNED;
498 } 498 }
499 if (likely(sysctl_tcp_window_scaling)) { 499 if (likely(sysctl_tcp_window_scaling &&
500 !dst_feature(dst, RTAX_FEATURE_NO_WSCALE))) {
500 opts->ws = tp->rx_opt.rcv_wscale; 501 opts->ws = tp->rx_opt.rcv_wscale;
501 opts->options |= OPTION_WSCALE; 502 opts->options |= OPTION_WSCALE;
502 size += TCPOLEN_WSCALE_ALIGNED; 503 size += TCPOLEN_WSCALE_ALIGNED;
@@ -2347,7 +2348,8 @@ static void tcp_connect_init(struct sock *sk)
2347 tp->advmss - (tp->rx_opt.ts_recent_stamp ? tp->tcp_header_len - sizeof(struct tcphdr) : 0), 2348 tp->advmss - (tp->rx_opt.ts_recent_stamp ? tp->tcp_header_len - sizeof(struct tcphdr) : 0),
2348 &tp->rcv_wnd, 2349 &tp->rcv_wnd,
2349 &tp->window_clamp, 2350 &tp->window_clamp,
2350 sysctl_tcp_window_scaling, 2351 (sysctl_tcp_window_scaling &&
2352 !dst_feature(dst, RTAX_FEATURE_NO_WSCALE)),
2351 &rcv_wscale); 2353 &rcv_wscale);
2352 2354
2353 tp->rx_opt.rcv_wscale = rcv_wscale; 2355 tp->rx_opt.rcv_wscale = rcv_wscale;