diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 817fbb396bc8..b44cf81d8178 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
| @@ -1809,8 +1809,11 @@ static bool tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb) | |||
| 1809 | goto send_now; | 1809 | goto send_now; |
| 1810 | } | 1810 | } |
| 1811 | 1811 | ||
| 1812 | /* Ok, it looks like it is advisable to defer. */ | 1812 | /* Ok, it looks like it is advisable to defer. |
| 1813 | tp->tso_deferred = 1 | (jiffies << 1); | 1813 | * Do not rearm the timer if already set to not break TCP ACK clocking. |
| 1814 | */ | ||
| 1815 | if (!tp->tso_deferred) | ||
| 1816 | tp->tso_deferred = 1 | (jiffies << 1); | ||
| 1814 | 1817 | ||
| 1815 | return true; | 1818 | return true; |
| 1816 | 1819 | ||
| @@ -2706,6 +2709,7 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst, | |||
| 2706 | skb_reserve(skb, MAX_TCP_HEADER); | 2709 | skb_reserve(skb, MAX_TCP_HEADER); |
| 2707 | 2710 | ||
| 2708 | skb_dst_set(skb, dst); | 2711 | skb_dst_set(skb, dst); |
| 2712 | security_skb_owned_by(skb, sk); | ||
| 2709 | 2713 | ||
| 2710 | mss = dst_metric_advmss(dst); | 2714 | mss = dst_metric_advmss(dst); |
| 2711 | if (tp->rx_opt.user_mss && tp->rx_opt.user_mss < mss) | 2715 | if (tp->rx_opt.user_mss && tp->rx_opt.user_mss < mss) |
