aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-05-21 16:01:54 -0400
committerDavid S. Miller <davem@davemloft.net>2018-05-21 16:01:54 -0400
commit6f6e434aa267a6030477876d89444fe3a6b7a48d (patch)
tree67755c422f1e85451aa646eae21d4c6f3f389d9f /net/ipv4/tcp_output.c
parent44c752fe584d8b9f6e0756ecffa8691677471862 (diff)
parent6741c4bb389da103c0d79ad1961884628900bfe6 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
S390 bpf_jit.S is removed in net-next and had changes in 'net', since that code isn't used any more take the removal. TLS data structures split the TX and RX components in 'net-next', put the new struct members from the bug fix in 'net' into the RX part. The 'net-next' tree had some reworking of how the ERSPAN code works in the GRE tunneling code, overlapping with a one-line headroom calculation fix in 'net'. Overlapping changes in __sock_map_ctx_update_elem(), keep the bits that read the prog members via READ_ONCE() into local variables before using them. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 437bb7ceba7f..8e08b409c71e 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2823,8 +2823,10 @@ int __tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb, int segs)
2823 return -EBUSY; 2823 return -EBUSY;
2824 2824
2825 if (before(TCP_SKB_CB(skb)->seq, tp->snd_una)) { 2825 if (before(TCP_SKB_CB(skb)->seq, tp->snd_una)) {
2826 if (before(TCP_SKB_CB(skb)->end_seq, tp->snd_una)) 2826 if (unlikely(before(TCP_SKB_CB(skb)->end_seq, tp->snd_una))) {
2827 BUG(); 2827 WARN_ON_ONCE(1);
2828 return -EINVAL;
2829 }
2828 if (tcp_trim_head(sk, skb, tp->snd_una - TCP_SKB_CB(skb)->seq)) 2830 if (tcp_trim_head(sk, skb, tp->snd_una - TCP_SKB_CB(skb)->seq))
2829 return -ENOMEM; 2831 return -ENOMEM;
2830 } 2832 }
@@ -3332,6 +3334,7 @@ static void tcp_connect_init(struct sock *sk)
3332 sock_reset_flag(sk, SOCK_DONE); 3334 sock_reset_flag(sk, SOCK_DONE);
3333 tp->snd_wnd = 0; 3335 tp->snd_wnd = 0;
3334 tcp_init_wl(tp, 0); 3336 tcp_init_wl(tp, 0);
3337 tcp_write_queue_purge(sk);
3335 tp->snd_una = tp->write_seq; 3338 tp->snd_una = tp->write_seq;
3336 tp->snd_sml = tp->write_seq; 3339 tp->snd_sml = tp->write_seq;
3337 tp->snd_up = tp->write_seq; 3340 tp->snd_up = tp->write_seq;