Lines Matching defs:sk

17 static int sock_wait_state(struct sock *sk, int state, unsigned long timeo)
22 pr_debug("sk %p", sk);
24 add_wait_queue(sk_sleep(sk), &wait);
27 while (sk->sk_state != state) {
38 release_sock(sk);
40 lock_sock(sk);
43 err = sock_error(sk);
49 remove_wait_queue(sk_sleep(sk), &wait);
61 struct sock *sk = sock->sk;
62 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
72 pr_debug("sk %p addr %p family %d\n", sk, addr, addr->sa_family);
82 lock_sock(sk);
84 if (sk->sk_state != LLCP_CLOSED) {
122 nfc_llcp_sock_link(&local->sockets, sk);
126 sk->sk_state = LLCP_BOUND;
128 release_sock(sk);
145 release_sock(sk);
152 struct sock *sk = sock->sk;
153 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
163 pr_debug("sk %p addr %p family %d\n", sk, addr, addr->sa_family);
169 lock_sock(sk);
171 if (sk->sk_state != LLCP_CLOSED) {
192 nfc_llcp_sock_link(&local->raw_sockets, sk);
194 sk->sk_state = LLCP_BOUND;
200 release_sock(sk);
206 struct sock *sk = sock->sk;
209 pr_debug("sk %p backlog %d\n", sk, backlog);
211 lock_sock(sk);
214 sk->sk_state != LLCP_BOUND) {
219 sk->sk_max_ack_backlog = backlog;
220 sk->sk_ack_backlog = 0;
223 sk->sk_state = LLCP_LISTEN;
226 release_sock(sk);
234 struct sock *sk = sock->sk;
235 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
239 pr_debug("%p optname %d\n", sk, optname);
244 lock_sock(sk);
248 if (sk->sk_state == LLCP_CONNECTED ||
249 sk->sk_state == LLCP_BOUND ||
250 sk->sk_state == LLCP_LISTEN) {
270 if (sk->sk_state == LLCP_CONNECTED ||
271 sk->sk_state == LLCP_BOUND ||
272 sk->sk_state == LLCP_LISTEN) {
296 release_sock(sk);
308 struct sock *sk = sock->sk;
309 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
314 pr_debug("%p optname %d\n", sk, optname);
328 lock_sock(sk);
373 release_sock(sk);
381 void nfc_llcp_accept_unlink(struct sock *sk)
383 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
385 pr_debug("state %d\n", sk->sk_state);
391 sock_put(sk);
394 void nfc_llcp_accept_enqueue(struct sock *parent, struct sock *sk)
396 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
400 sock_hold(sk);
412 struct sock *sk;
418 sk = &lsk->sk;
419 lock_sock(sk);
421 if (sk->sk_state == LLCP_CLOSED) {
422 release_sock(sk);
423 nfc_llcp_accept_unlink(sk);
427 if (sk->sk_state == LLCP_CONNECTED || !newsock) {
429 sock_put(sk);
432 sock_graft(sk, newsock);
434 release_sock(sk);
436 pr_debug("Returning sk state %d\n", sk->sk_state);
440 return sk;
443 release_sock(sk);
453 struct sock *sk = sock->sk, *new_sk;
457 pr_debug("parent %p\n", sk);
459 lock_sock_nested(sk, SINGLE_DEPTH_NESTING);
461 if (sk->sk_state != LLCP_LISTEN) {
466 timeo = sock_rcvtimeo(sk, arg->flags & O_NONBLOCK);
469 add_wait_queue_exclusive(sk_sleep(sk), &wait);
470 while (!(new_sk = nfc_llcp_accept_dequeue(sk, newsock))) {
483 release_sock(sk);
485 lock_sock_nested(sk, SINGLE_DEPTH_NESTING);
488 remove_wait_queue(sk_sleep(sk), &wait);
498 release_sock(sk);
506 struct sock *sk = sock->sk;
507 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
513 pr_debug("%p %d %d %d\n", sk, llcp_sock->target_idx,
518 lock_sock(sk);
520 release_sock(sk);
532 release_sock(sk);
540 struct sock *sk;
546 sk = &llcp_sock->sk;
548 if (sk->sk_state == LLCP_CONNECTED)
558 struct sock *sk = sock->sk;
561 pr_debug("%p\n", sk);
565 if (sk->sk_state == LLCP_LISTEN)
566 return llcp_accept_poll(sk);
568 if (sk->sk_err || !skb_queue_empty_lockless(&sk->sk_error_queue))
570 (sock_flag(sk, SOCK_SELECT_ERR_QUEUE) ? EPOLLPRI : 0);
572 if (!skb_queue_empty_lockless(&sk->sk_receive_queue))
575 if (sk->sk_state == LLCP_CLOSED)
578 if (sk->sk_shutdown & RCV_SHUTDOWN)
581 if (sk->sk_shutdown == SHUTDOWN_MASK)
584 if (sock_writeable(sk) && sk->sk_state == LLCP_CONNECTED)
587 sk_set_bit(SOCKWQ_ASYNC_NOSPACE, sk);
596 struct sock *sk = sock->sk;
598 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
601 if (!sk)
604 pr_debug("%p\n", sk);
612 lock_sock(sk);
615 if (sk->sk_state == LLCP_CONNECTED)
618 if (sk->sk_state == LLCP_LISTEN) {
624 accept_sk = &lsk->sk;
635 nfc_llcp_sock_unlink(&local->raw_sockets, sk);
637 nfc_llcp_sock_unlink(&local->sockets, sk);
642 release_sock(sk);
645 sock_orphan(sk);
646 sock_put(sk);
654 struct sock *sk = sock->sk;
655 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
661 pr_debug("sock %p sk %p flags 0x%x\n", sock, sk, flags);
672 lock_sock(sk);
674 if (sk->sk_state == LLCP_CONNECTED) {
678 if (sk->sk_state == LLCP_CONNECTING) {
735 nfc_llcp_sock_link(&local->connecting_sockets, sk);
741 sk->sk_state = LLCP_CONNECTING;
743 ret = sock_wait_state(sk, LLCP_CONNECTED,
744 sock_sndtimeo(sk, flags & O_NONBLOCK));
748 release_sock(sk);
753 nfc_llcp_sock_unlink(&local->connecting_sockets, sk);
771 release_sock(sk);
778 struct sock *sk = sock->sk;
779 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
782 pr_debug("sock %p sk %p", sock, sk);
784 ret = sock_error(sk);
791 lock_sock(sk);
794 release_sock(sk);
798 if (sk->sk_type == SOCK_DGRAM) {
799 if (sk->sk_state != LLCP_BOUND) {
800 release_sock(sk);
808 release_sock(sk);
812 release_sock(sk);
818 if (sk->sk_state != LLCP_CONNECTED) {
819 release_sock(sk);
823 release_sock(sk);
831 struct sock *sk = sock->sk;
836 pr_debug("%p %zu\n", sk, len);
838 lock_sock(sk);
840 if (sk->sk_state == LLCP_CLOSED &&
841 skb_queue_empty(&sk->sk_receive_queue)) {
842 release_sock(sk);
846 release_sock(sk);
851 skb = skb_recv_datagram(sk, flags, &err);
854 sk->sk_state, err, sock_error(sk));
856 if (sk->sk_shutdown & RCV_SHUTDOWN)
868 skb_queue_head(&sk->sk_receive_queue, skb);
872 sock_recv_timestamp(msg, sk, skb);
874 if (sk->sk_type == SOCK_DGRAM && msg->msg_name) {
894 if (sk->sk_type == SOCK_STREAM ||
895 sk->sk_type == SOCK_DGRAM ||
896 sk->sk_type == SOCK_RAW) {
899 skb_queue_head(&sk->sk_receive_queue, skb);
911 if (sk->sk_type == SOCK_SEQPACKET && (flags & MSG_TRUNC))
955 static void llcp_sock_destruct(struct sock *sk)
957 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk);
959 pr_debug("%p\n", sk);
961 if (sk->sk_state == LLCP_CONNECTED)
964 skb_queue_purge(&sk->sk_receive_queue);
968 if (!sock_flag(sk, SOCK_DEAD)) {
969 pr_err("Freeing alive NFC LLCP socket %p\n", sk);
976 struct sock *sk;
979 sk = sk_alloc(&init_net, PF_NFC, gfp, &llcp_sock_proto, kern);
980 if (!sk)
983 llcp_sock = nfc_llcp_sock(sk);
985 sock_init_data(sock, sk);
986 sk->sk_state = LLCP_CLOSED;
987 sk->sk_protocol = NFC_SOCKPROTO_LLCP;
988 sk->sk_type = type;
989 sk->sk_destruct = llcp_sock_destruct;
1007 return sk;
1027 struct sock *sk;
1044 sk = nfc_llcp_sock_alloc(sock, sock->type, GFP_ATOMIC, kern);
1045 if (sk == NULL)