Lines Matching refs:nsk
189 const struct sock *nsk, in reuseport_array_update_check() argument
200 if (nsk->sk_protocol != IPPROTO_UDP && nsk->sk_protocol != IPPROTO_TCP) in reuseport_array_update_check()
203 if (nsk->sk_family != AF_INET && nsk->sk_family != AF_INET6) in reuseport_array_update_check()
206 if (nsk->sk_type != SOCK_STREAM && nsk->sk_type != SOCK_DGRAM) in reuseport_array_update_check()
217 if (!sock_flag(nsk, SOCK_RCU_FREE) || !sk_hashed(nsk) || !nsk_reuse) in reuseport_array_update_check()
221 if (READ_ONCE(nsk->sk_user_data)) in reuseport_array_update_check()
236 struct sock *free_osk = NULL, *osk, *nsk; in bpf_fd_reuseport_array_update_elem() local
263 nsk = socket->sk; in bpf_fd_reuseport_array_update_elem()
264 if (!nsk) { in bpf_fd_reuseport_array_update_elem()
270 err = reuseport_array_update_check(array, nsk, in bpf_fd_reuseport_array_update_elem()
272 rcu_access_pointer(nsk->sk_reuseport_cb), in bpf_fd_reuseport_array_update_elem()
283 write_lock_bh(&nsk->sk_callback_lock); in bpf_fd_reuseport_array_update_elem()
287 reuse = rcu_dereference_protected(nsk->sk_reuseport_cb, in bpf_fd_reuseport_array_update_elem()
289 err = reuseport_array_update_check(array, nsk, osk, reuse, map_flags); in bpf_fd_reuseport_array_update_elem()
295 WRITE_ONCE(nsk->sk_user_data, (void *)sk_user_data); in bpf_fd_reuseport_array_update_elem()
296 rcu_assign_pointer(array->ptrs[index], nsk); in bpf_fd_reuseport_array_update_elem()
301 write_unlock_bh(&nsk->sk_callback_lock); in bpf_fd_reuseport_array_update_elem()