aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/inet6_connection_sock.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/inet6_connection_sock.c')
-rw-r--r--net/ipv6/inet6_connection_sock.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c
index 36c3f0155010..532c3ef282c5 100644
--- a/net/ipv6/inet6_connection_sock.c
+++ b/net/ipv6/inet6_connection_sock.c
@@ -26,6 +26,7 @@
26#include <net/ip6_route.h> 26#include <net/ip6_route.h>
27#include <net/sock.h> 27#include <net/sock.h>
28#include <net/inet6_connection_sock.h> 28#include <net/inet6_connection_sock.h>
29#include <net/sock_reuseport.h>
29 30
30int inet6_csk_bind_conflict(const struct sock *sk, 31int inet6_csk_bind_conflict(const struct sock *sk,
31 const struct inet_bind_bucket *tb, bool relax) 32 const struct inet_bind_bucket *tb, bool relax)
@@ -48,6 +49,7 @@ int inet6_csk_bind_conflict(const struct sock *sk,
48 if ((!reuse || !sk2->sk_reuse || 49 if ((!reuse || !sk2->sk_reuse ||
49 sk2->sk_state == TCP_LISTEN) && 50 sk2->sk_state == TCP_LISTEN) &&
50 (!reuseport || !sk2->sk_reuseport || 51 (!reuseport || !sk2->sk_reuseport ||
52 rcu_access_pointer(sk->sk_reuseport_cb) ||
51 (sk2->sk_state != TCP_TIME_WAIT && 53 (sk2->sk_state != TCP_TIME_WAIT &&
52 !uid_eq(uid, 54 !uid_eq(uid,
53 sock_i_uid((struct sock *)sk2))))) { 55 sock_i_uid((struct sock *)sk2))))) {