diff options
author | David S. Miller <davem@davemloft.net> | 2019-09-17 23:51:10 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-09-17 23:51:10 +0200 |
commit | 1bab8d4c488be22d57f9dd09968c90a0ddc413bf (patch) | |
tree | 81318cd13170a3b6b72489f63e92adb0eaf49693 /net/ipv6/udp.c | |
parent | Merge branch 'mlxsw-spectrum_buffers-Add-the-ability-to-query-the-CPU-ports-s... (diff) | |
parent | xen-netfront: do not assume sk_buff_head list is empty in error handling (diff) | |
download | linux-1bab8d4c488be22d57f9dd09968c90a0ddc413bf.tar.xz linux-1bab8d4c488be22d57f9dd09968c90a0ddc413bf.zip |
Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net
Pull in bug fixes from 'net' tree for the merge window.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 2c8beb3896d1..aae4938f3dea 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -158,13 +158,14 @@ static struct sock *udp6_lib_lookup2(struct net *net, score = compute_score(sk, net, saddr, sport, daddr, hnum, dif, sdif); if (score > badness) { - if (sk->sk_reuseport) { + if (sk->sk_reuseport && + sk->sk_state != TCP_ESTABLISHED) { hash = udp6_ehashfn(net, daddr, hnum, saddr, sport); result = reuseport_select_sock(sk, hash, skb, sizeof(struct udphdr)); - if (result) + if (result && !reuseport_has_conns(sk, false)) return result; } result = sk; |