Lines Matching refs:sk

143 static inline struct l2tp_session *pppol2tp_sock_to_session(struct sock *sk)  in pppol2tp_sock_to_session()  argument
147 if (sk == NULL) in pppol2tp_sock_to_session()
150 sock_hold(sk); in pppol2tp_sock_to_session()
151 session = (struct l2tp_session *)(sk->sk_user_data); in pppol2tp_sock_to_session()
153 sock_put(sk); in pppol2tp_sock_to_session()
193 struct sock *sk = sock->sk; in pppol2tp_recvmsg() local
196 if (sk->sk_state & PPPOX_BOUND) in pppol2tp_recvmsg()
200 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, in pppol2tp_recvmsg()
222 struct sock *sk = NULL; in pppol2tp_recv() local
227 sk = ps->sock; in pppol2tp_recv()
228 if (sk == NULL) in pppol2tp_recv()
231 if (sk->sk_state & PPPOX_BOUND) { in pppol2tp_recv()
253 po = pppox_sk(sk); in pppol2tp_recv()
260 if (sock_queue_rcv_skb(sk, skb) < 0) { in pppol2tp_recv()
301 struct sock *sk = sock->sk; in pppol2tp_sendmsg() local
310 if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_sendmsg()
315 session = pppol2tp_sock_to_session(sk); in pppol2tp_sendmsg()
328 skb = sock_wmalloc(sk, NET_SKB_PAD + sizeof(struct iphdr) + in pppol2tp_sendmsg()
359 sock_put(sk); in pppol2tp_sendmsg()
366 sock_put(sk); in pppol2tp_sendmsg()
388 struct sock *sk = (struct sock *) chan->private; in pppol2tp_xmit() local
395 if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_xmit()
399 session = pppol2tp_sock_to_session(sk); in pppol2tp_xmit()
430 sock_put(sk); in pppol2tp_xmit()
436 sock_put(sk); in pppol2tp_xmit()
452 struct sock *sk = ps->sock; in pppol2tp_session_close() local
453 struct socket *sock = sk->sk_socket; in pppol2tp_session_close()
467 static void pppol2tp_session_destruct(struct sock *sk) in pppol2tp_session_destruct() argument
469 struct l2tp_session *session = sk->sk_user_data; in pppol2tp_session_destruct()
471 sk->sk_user_data = NULL; in pppol2tp_session_destruct()
481 struct sock *sk = sock->sk; in pppol2tp_release() local
485 if (!sk) in pppol2tp_release()
489 lock_sock(sk); in pppol2tp_release()
490 if (sock_flag(sk, SOCK_DEAD) != 0) in pppol2tp_release()
493 pppox_unbind_sock(sk); in pppol2tp_release()
496 sk->sk_state = PPPOX_DEAD; in pppol2tp_release()
497 sock_orphan(sk); in pppol2tp_release()
498 sock->sk = NULL; in pppol2tp_release()
500 session = pppol2tp_sock_to_session(sk); in pppol2tp_release()
506 sock_put(sk); in pppol2tp_release()
508 skb_queue_purge(&sk->sk_receive_queue); in pppol2tp_release()
509 skb_queue_purge(&sk->sk_write_queue); in pppol2tp_release()
511 release_sock(sk); in pppol2tp_release()
517 sock_put(sk); in pppol2tp_release()
522 release_sock(sk); in pppol2tp_release()
532 static int pppol2tp_backlog_recv(struct sock *sk, struct sk_buff *skb) in pppol2tp_backlog_recv() argument
536 rc = l2tp_udp_encap_recv(sk, skb); in pppol2tp_backlog_recv()
548 struct sock *sk; in pppol2tp_create() local
550 sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pppol2tp_sk_proto, kern); in pppol2tp_create()
551 if (!sk) in pppol2tp_create()
554 sock_init_data(sock, sk); in pppol2tp_create()
559 sk->sk_backlog_rcv = pppol2tp_backlog_recv; in pppol2tp_create()
560 sk->sk_protocol = PX_PROTO_OL2TP; in pppol2tp_create()
561 sk->sk_family = PF_PPPOX; in pppol2tp_create()
562 sk->sk_state = PPPOX_NONE; in pppol2tp_create()
563 sk->sk_type = SOCK_STREAM; in pppol2tp_create()
564 sk->sk_destruct = pppol2tp_session_destruct; in pppol2tp_create()
591 struct sock *sk = sock->sk; in pppol2tp_connect() local
593 struct pppox_sock *po = pppox_sk(sk); in pppol2tp_connect()
605 lock_sock(sk); in pppol2tp_connect()
613 if (sk->sk_state & PPPOX_CONNECTED) in pppol2tp_connect()
618 if (sk->sk_user_data) in pppol2tp_connect()
670 tunnel = l2tp_tunnel_find(sock_net(sk), tunnel_id); in pppol2tp_connect()
682 error = l2tp_tunnel_create(sock_net(sk), fd, ver, tunnel_id, peer_tunnel_id, &tcfg, &tunnel); in pppol2tp_connect()
709 session = l2tp_session_find(sock_net(sk), tunnel, session_id); in pppol2tp_connect()
738 ps->sock = sk; in pppol2tp_connect()
781 po->chan.private = sk; in pppol2tp_connect()
785 error = ppp_register_net_channel(sock_net(sk), &po->chan); in pppol2tp_connect()
791 sk->sk_user_data = session; in pppol2tp_connect()
792 sk->sk_state = PPPOX_CONNECTED; in pppol2tp_connect()
797 release_sock(sk); in pppol2tp_connect()
867 struct sock *sk = sock->sk; in pppol2tp_getname() local
872 if (sk == NULL) in pppol2tp_getname()
874 if (sk->sk_state != PPPOX_CONNECTED) in pppol2tp_getname()
878 session = pppol2tp_sock_to_session(sk); in pppol2tp_getname()
968 sock_put(sk); in pppol2tp_getname()
1006 struct sock *sk; in pppol2tp_session_ioctl() local
1016 sk = ps->sock; in pppol2tp_session_ioctl()
1017 sock_hold(sk); in pppol2tp_session_ioctl()
1022 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_session_ioctl()
1039 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_session_ioctl()
1055 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_session_ioctl()
1069 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_session_ioctl()
1104 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_session_ioctl()
1124 sock_put(sk); in pppol2tp_session_ioctl()
1139 struct sock *sk; in pppol2tp_tunnel_ioctl() local
1146 sk = tunnel->sock; in pppol2tp_tunnel_ioctl()
1147 sock_hold(sk); in pppol2tp_tunnel_ioctl()
1152 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppol2tp_tunnel_ioctl()
1163 l2tp_session_find(sock_net(sk), tunnel, stats.session_id); in pppol2tp_tunnel_ioctl()
1171 stats.using_ipsec = (sk->sk_policy[0] || sk->sk_policy[1]) ? 1 : 0; in pppol2tp_tunnel_ioctl()
1188 sock_put(sk); in pppol2tp_tunnel_ioctl()
1199 struct sock *sk = sock->sk; in pppol2tp_ioctl() local
1205 if (!sk) in pppol2tp_ioctl()
1209 if (sock_flag(sk, SOCK_DEAD) != 0) in pppol2tp_ioctl()
1213 if ((sk->sk_user_data == NULL) || in pppol2tp_ioctl()
1214 (!(sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND)))) in pppol2tp_ioctl()
1219 session = pppol2tp_sock_to_session(sk); in pppol2tp_ioctl()
1242 sock_put(sk); in pppol2tp_ioctl()
1259 static int pppol2tp_tunnel_setsockopt(struct sock *sk, in pppol2tp_tunnel_setsockopt() argument
1282 static int pppol2tp_session_setsockopt(struct sock *sk, in pppol2tp_session_setsockopt() argument
1359 struct sock *sk = sock->sk; in pppol2tp_setsockopt() local
1376 if (sk->sk_user_data == NULL) in pppol2tp_setsockopt()
1381 session = pppol2tp_sock_to_session(sk); in pppol2tp_setsockopt()
1395 err = pppol2tp_tunnel_setsockopt(sk, tunnel, optname, val); in pppol2tp_setsockopt()
1398 err = pppol2tp_session_setsockopt(sk, session, optname, val); in pppol2tp_setsockopt()
1403 sock_put(sk); in pppol2tp_setsockopt()
1410 static int pppol2tp_tunnel_getsockopt(struct sock *sk, in pppol2tp_tunnel_getsockopt() argument
1433 static int pppol2tp_session_getsockopt(struct sock *sk, in pppol2tp_session_getsockopt() argument
1485 struct sock *sk = sock->sk; in pppol2tp_getsockopt() local
1504 if (sk->sk_user_data == NULL) in pppol2tp_getsockopt()
1509 session = pppol2tp_sock_to_session(sk); in pppol2tp_getsockopt()
1522 err = pppol2tp_tunnel_getsockopt(sk, tunnel, optname, &val); in pppol2tp_getsockopt()
1525 err = pppol2tp_session_getsockopt(sk, session, optname, &val); in pppol2tp_getsockopt()
1537 sock_put(sk); in pppol2tp_getsockopt()