diff options
author | David S. Miller <davem@davemloft.net> | 2019-05-02 22:14:21 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-05-02 22:14:21 -0400 |
commit | ff24e4980a68d83090a02fda081741a410fe8eef (patch) | |
tree | 4d874dfcaf2bb8c3abc2446af9447a983402c0ae /net/ipv4/tcp_ipv4.c | |
parent | 26f146ed971c0e4a264ce525d7a66a71ef73690d (diff) | |
parent | ea9866793d1e925b4d320eaea409263b2a568f38 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Three trivial overlapping conflicts.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index faa6fa619f59..af81e4a6a8d8 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -1673,7 +1673,9 @@ bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb) | |||
1673 | if (TCP_SKB_CB(tail)->end_seq != TCP_SKB_CB(skb)->seq || | 1673 | if (TCP_SKB_CB(tail)->end_seq != TCP_SKB_CB(skb)->seq || |
1674 | TCP_SKB_CB(tail)->ip_dsfield != TCP_SKB_CB(skb)->ip_dsfield || | 1674 | TCP_SKB_CB(tail)->ip_dsfield != TCP_SKB_CB(skb)->ip_dsfield || |
1675 | ((TCP_SKB_CB(tail)->tcp_flags | | 1675 | ((TCP_SKB_CB(tail)->tcp_flags | |
1676 | TCP_SKB_CB(skb)->tcp_flags) & TCPHDR_URG) || | 1676 | TCP_SKB_CB(skb)->tcp_flags) & (TCPHDR_SYN | TCPHDR_RST | TCPHDR_URG)) || |
1677 | !((TCP_SKB_CB(tail)->tcp_flags & | ||
1678 | TCP_SKB_CB(skb)->tcp_flags) & TCPHDR_ACK) || | ||
1677 | ((TCP_SKB_CB(tail)->tcp_flags ^ | 1679 | ((TCP_SKB_CB(tail)->tcp_flags ^ |
1678 | TCP_SKB_CB(skb)->tcp_flags) & (TCPHDR_ECE | TCPHDR_CWR)) || | 1680 | TCP_SKB_CB(skb)->tcp_flags) & (TCPHDR_ECE | TCPHDR_CWR)) || |
1679 | #ifdef CONFIG_TLS_DEVICE | 1681 | #ifdef CONFIG_TLS_DEVICE |
@@ -1692,6 +1694,15 @@ bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb) | |||
1692 | if (after(TCP_SKB_CB(skb)->ack_seq, TCP_SKB_CB(tail)->ack_seq)) | 1694 | if (after(TCP_SKB_CB(skb)->ack_seq, TCP_SKB_CB(tail)->ack_seq)) |
1693 | TCP_SKB_CB(tail)->ack_seq = TCP_SKB_CB(skb)->ack_seq; | 1695 | TCP_SKB_CB(tail)->ack_seq = TCP_SKB_CB(skb)->ack_seq; |
1694 | 1696 | ||
1697 | /* We have to update both TCP_SKB_CB(tail)->tcp_flags and | ||
1698 | * thtail->fin, so that the fast path in tcp_rcv_established() | ||
1699 | * is not entered if we append a packet with a FIN. | ||
1700 | * SYN, RST, URG are not present. | ||
1701 | * ACK is set on both packets. | ||
1702 | * PSH : we do not really care in TCP stack, | ||
1703 | * at least for 'GRO' packets. | ||
1704 | */ | ||
1705 | thtail->fin |= th->fin; | ||
1695 | TCP_SKB_CB(tail)->tcp_flags |= TCP_SKB_CB(skb)->tcp_flags; | 1706 | TCP_SKB_CB(tail)->tcp_flags |= TCP_SKB_CB(skb)->tcp_flags; |
1696 | 1707 | ||
1697 | if (TCP_SKB_CB(skb)->has_rxtstamp) { | 1708 | if (TCP_SKB_CB(skb)->has_rxtstamp) { |