Lines Matching refs:sk

118 static inline struct l2tp_tunnel *l2tp_tunnel(struct sock *sk)  in l2tp_tunnel()  argument
120 return sk->sk_user_data; in l2tp_tunnel()
183 struct sock *sk = NULL; in l2tp_tunnel_sock_lookup() local
195 sk = sock->sk; in l2tp_tunnel_sock_lookup()
198 sk = tunnel->sock; in l2tp_tunnel_sock_lookup()
199 sock_hold(sk); in l2tp_tunnel_sock_lookup()
203 return sk; in l2tp_tunnel_sock_lookup()
207 static void l2tp_tunnel_sock_put(struct sock *sk) in l2tp_tunnel_sock_put() argument
209 struct l2tp_tunnel *tunnel = l2tp_sock_to_tunnel(sk); in l2tp_tunnel_sock_put()
213 sockfd_put(sk->sk_socket); in l2tp_tunnel_sock_put()
215 sock_put(sk); in l2tp_tunnel_sock_put()
217 sock_put(sk); in l2tp_tunnel_sock_put()
949 int l2tp_udp_encap_recv(struct sock *sk, struct sk_buff *skb) in l2tp_udp_encap_recv() argument
953 tunnel = l2tp_sock_to_tunnel(sk); in l2tp_udp_encap_recv()
963 sock_put(sk); in l2tp_udp_encap_recv()
967 sock_put(sk); in l2tp_udp_encap_recv()
1106 struct sock *sk = tunnel->sock; in l2tp_xmit_skb() local
1135 bh_lock_sock(sk); in l2tp_xmit_skb()
1136 if (sock_owned_by_user(sk)) { in l2tp_xmit_skb()
1144 skb_dst_set(skb, dst_clone(__sk_dst_check(sk, 0))); in l2tp_xmit_skb()
1146 inet = inet_sk(sk); in l2tp_xmit_skb()
1161 if (sk->sk_family == PF_INET6 && !tunnel->v4mapped) in l2tp_xmit_skb()
1162 udp6_set_csum(udp_get_no_check6_tx(sk), in l2tp_xmit_skb()
1163 skb, &inet6_sk(sk)->saddr, in l2tp_xmit_skb()
1164 &sk->sk_v6_daddr, udp_len); in l2tp_xmit_skb()
1167 udp_set_csum(sk->sk_no_check_tx, skb, inet->inet_saddr, in l2tp_xmit_skb()
1177 bh_unlock_sock(sk); in l2tp_xmit_skb()
1191 static void l2tp_tunnel_destruct(struct sock *sk) in l2tp_tunnel_destruct() argument
1193 struct l2tp_tunnel *tunnel = l2tp_tunnel(sk); in l2tp_tunnel_destruct()
1206 (udp_sk(sk))->encap_type = 0; in l2tp_tunnel_destruct()
1207 (udp_sk(sk))->encap_rcv = NULL; in l2tp_tunnel_destruct()
1208 (udp_sk(sk))->encap_destroy = NULL; in l2tp_tunnel_destruct()
1215 sk->sk_destruct = tunnel->old_sk_destruct; in l2tp_tunnel_destruct()
1216 sk->sk_user_data = NULL; in l2tp_tunnel_destruct()
1230 if (sk->sk_destruct) in l2tp_tunnel_destruct()
1231 (*sk->sk_destruct)(sk); in l2tp_tunnel_destruct()
1292 static void l2tp_udp_encap_destroy(struct sock *sk) in l2tp_udp_encap_destroy() argument
1294 struct l2tp_tunnel *tunnel = l2tp_sock_to_tunnel(sk); in l2tp_udp_encap_destroy()
1297 sock_put(sk); in l2tp_udp_encap_destroy()
1317 struct sock *sk = NULL; in l2tp_tunnel_del_work() local
1320 sk = l2tp_tunnel_sock_lookup(tunnel); in l2tp_tunnel_del_work()
1321 if (!sk) in l2tp_tunnel_del_work()
1324 sock = sk->sk_socket; in l2tp_tunnel_del_work()
1339 sk_release_kernel(sk); in l2tp_tunnel_del_work()
1342 l2tp_tunnel_sock_put(sk); in l2tp_tunnel_del_work()
1409 sk_change_net(sock->sk, net); in l2tp_tunnel_sock_create()
1439 sk_change_net(sock->sk, net); in l2tp_tunnel_sock_create()
1467 sk_release_kernel(sock->sk); in l2tp_tunnel_sock_create()
1481 struct sock *sk = NULL; in l2tp_tunnel_create() local
1504 if (!net_eq(sock_net(sock->sk), net)) { in l2tp_tunnel_create()
1511 sk = sock->sk; in l2tp_tunnel_create()
1520 if (sk->sk_protocol != IPPROTO_UDP) { in l2tp_tunnel_create()
1522 tunnel_id, fd, sk->sk_protocol, IPPROTO_UDP); in l2tp_tunnel_create()
1528 if (sk->sk_protocol != IPPROTO_L2TP) { in l2tp_tunnel_create()
1530 tunnel_id, fd, sk->sk_protocol, IPPROTO_L2TP); in l2tp_tunnel_create()
1537 tunnel = l2tp_tunnel(sk); in l2tp_tunnel_create()
1567 if (sk->sk_family == PF_INET6) { in l2tp_tunnel_create()
1568 struct ipv6_pinfo *np = inet6_sk(sk); in l2tp_tunnel_create()
1571 ipv6_addr_v4mapped(&sk->sk_v6_daddr)) { in l2tp_tunnel_create()
1572 struct inet_sock *inet = inet_sk(sk); in l2tp_tunnel_create()
1576 inet->inet_rcv_saddr = sk->sk_v6_rcv_saddr.s6_addr32[3]; in l2tp_tunnel_create()
1577 inet->inet_daddr = sk->sk_v6_daddr.s6_addr32[3]; in l2tp_tunnel_create()
1596 sk->sk_user_data = tunnel; in l2tp_tunnel_create()
1602 tunnel->old_sk_destruct = sk->sk_destruct; in l2tp_tunnel_create()
1603 sk->sk_destruct = &l2tp_tunnel_destruct; in l2tp_tunnel_create()
1604 tunnel->sock = sk; in l2tp_tunnel_create()
1606 lockdep_set_class_and_name(&sk->sk_lock.slock, &l2tp_socket_class, "l2tp_sock"); in l2tp_tunnel_create()
1608 sk->sk_allocation = GFP_ATOMIC; in l2tp_tunnel_create()