Lines Matching refs:sk2
91 bool inet_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2,
97 inet6_rcv_saddr(sk2),
99 sk2->sk_rcv_saddr,
101 ipv6_only_sock(sk2),
105 return ipv4_rcv_saddr_equal(sk->sk_rcv_saddr, sk2->sk_rcv_saddr,
106 ipv6_only_sock(sk2), match_wildcard,
167 static bool inet_bind_conflict(const struct sock *sk, struct sock *sk2,
173 if (sk == sk2)
176 bound_dev_if2 = READ_ONCE(sk2->sk_bound_dev_if);
180 if (sk->sk_reuse && sk2->sk_reuse &&
181 sk2->sk_state != TCP_LISTEN) {
183 sk2->sk_reuseport && reuseport_cb_ok &&
184 (sk2->sk_state == TCP_TIME_WAIT ||
185 uid_eq(sk_uid, sock_i_uid(sk2)))))
188 !sk2->sk_reuseport || !reuseport_cb_ok ||
189 (sk2->sk_state != TCP_TIME_WAIT &&
190 !uid_eq(sk_uid, sock_i_uid(sk2)))) {
197 static bool __inet_bhash2_conflict(const struct sock *sk, struct sock *sk2,
201 if (sk->sk_family == AF_INET && ipv6_only_sock(sk2))
204 return inet_bind_conflict(sk, sk2, sk_uid, relax,
215 struct sock *sk2;
217 sk_for_each_bound_bhash2(sk2, &tb2->owners) {
218 if (__inet_bhash2_conflict(sk, sk2, sk_uid, relax,
224 sk2 = (struct sock *)tw2;
226 if (__inet_bhash2_conflict(sk, sk2, sk_uid, relax,
258 struct sock *sk2;
260 sk_for_each_bound(sk2, &tb->owners)
261 if (inet_bind_conflict(sk, sk2, uid, relax,
263 inet_rcv_saddr_equal(sk, sk2, true))