Lines Matching refs:sk
58 static void ax25_free_sock(struct sock *sk) in ax25_free_sock() argument
60 ax25_cb_put(sk_to_ax25(sk)); in ax25_free_sock()
164 if (s->sk && !ax25cmp(&s->source_addr, addr) && in ax25_find_listener()
165 s->sk->sk_type == type && s->sk->sk_state == TCP_LISTEN) { in ax25_find_listener()
168 sock_hold(s->sk); in ax25_find_listener()
170 return s->sk; in ax25_find_listener()
185 struct sock *sk = NULL; in ax25_get_socket() local
190 if (s->sk && !ax25cmp(&s->source_addr, my_addr) && in ax25_get_socket()
192 s->sk->sk_type == type) { in ax25_get_socket()
193 sk = s->sk; in ax25_get_socket()
194 sock_hold(sk); in ax25_get_socket()
201 return sk; in ax25_get_socket()
215 if (s->sk && s->sk->sk_type != SOCK_SEQPACKET) in ax25_find_cb()
249 if (s->sk != NULL && ax25cmp(&s->source_addr, addr) == 0 && in ax25_send_to_raw()
250 s->sk->sk_type == SOCK_RAW && in ax25_send_to_raw()
251 s->sk->sk_protocol == proto && in ax25_send_to_raw()
253 atomic_read(&s->sk->sk_rmem_alloc) <= s->sk->sk_rcvbuf) { in ax25_send_to_raw()
256 if (sock_queue_rcv_skb(s->sk, copy) != 0) in ax25_send_to_raw()
274 struct sock *sk; in ax25_destroy_timer() local
276 sk=ax25->sk; in ax25_destroy_timer()
278 bh_lock_sock(sk); in ax25_destroy_timer()
279 sock_hold(sk); in ax25_destroy_timer()
281 bh_unlock_sock(sk); in ax25_destroy_timer()
282 sock_put(sk); in ax25_destroy_timer()
305 if (ax25->sk != NULL) { in ax25_destroy_socket()
306 while ((skb = skb_dequeue(&ax25->sk->sk_receive_queue)) != NULL) { in ax25_destroy_socket()
307 if (skb->sk != ax25->sk) { in ax25_destroy_socket()
309 ax25_cb *sax25 = sk_to_ax25(skb->sk); in ax25_destroy_socket()
312 sock_orphan(skb->sk); in ax25_destroy_socket()
315 skb->sk->sk_state = TCP_LISTEN; in ax25_destroy_socket()
323 skb_queue_purge(&ax25->sk->sk_write_queue); in ax25_destroy_socket()
326 if (ax25->sk != NULL) { in ax25_destroy_socket()
327 if (sk_has_allocations(ax25->sk)) { in ax25_destroy_socket()
334 struct sock *sk=ax25->sk; in ax25_destroy_socket() local
335 ax25->sk=NULL; in ax25_destroy_socket()
336 sock_put(sk); in ax25_destroy_socket()
537 struct sock *sk = sock->sk; in ax25_setsockopt() local
553 lock_sock(sk); in ax25_setsockopt()
554 ax25 = sk_to_ax25(sk); in ax25_setsockopt()
650 if (sk->sk_type == SOCK_SEQPACKET && in ax25_setsockopt()
652 sk->sk_state == TCP_LISTEN)) { in ax25_setsockopt()
671 release_sock(sk); in ax25_setsockopt()
679 struct sock *sk = sock->sk; in ax25_getsockopt() local
699 lock_sock(sk); in ax25_getsockopt()
700 ax25 = sk_to_ax25(sk); in ax25_getsockopt()
762 release_sock(sk); in ax25_getsockopt()
765 release_sock(sk); in ax25_getsockopt()
775 struct sock *sk = sock->sk; in ax25_listen() local
778 lock_sock(sk); in ax25_listen()
779 if (sk->sk_type == SOCK_SEQPACKET && sk->sk_state != TCP_LISTEN) { in ax25_listen()
780 sk->sk_max_ack_backlog = backlog; in ax25_listen()
781 sk->sk_state = TCP_LISTEN; in ax25_listen()
787 release_sock(sk); in ax25_listen()
805 struct sock *sk; in ax25_create() local
860 sk = sk_alloc(net, PF_AX25, GFP_ATOMIC, &ax25_proto, kern); in ax25_create()
861 if (sk == NULL) in ax25_create()
864 ax25 = ax25_sk(sk)->cb = ax25_create_cb(); in ax25_create()
866 sk_free(sk); in ax25_create()
870 sock_init_data(sock, sk); in ax25_create()
872 sk->sk_destruct = ax25_free_sock; in ax25_create()
874 sk->sk_protocol = protocol; in ax25_create()
876 ax25->sk = sk; in ax25_create()
883 struct sock *sk; in ax25_make_new() local
886 sk = sk_alloc(sock_net(osk), PF_AX25, GFP_ATOMIC, osk->sk_prot, 0); in ax25_make_new()
887 if (sk == NULL) in ax25_make_new()
891 sk_free(sk); in ax25_make_new()
901 sk_free(sk); in ax25_make_new()
906 sock_init_data(NULL, sk); in ax25_make_new()
908 sk->sk_type = osk->sk_type; in ax25_make_new()
909 sk->sk_priority = osk->sk_priority; in ax25_make_new()
910 sk->sk_protocol = osk->sk_protocol; in ax25_make_new()
911 sk->sk_rcvbuf = osk->sk_rcvbuf; in ax25_make_new()
912 sk->sk_sndbuf = osk->sk_sndbuf; in ax25_make_new()
913 sk->sk_state = TCP_ESTABLISHED; in ax25_make_new()
914 sock_copy_flags(sk, osk); in ax25_make_new()
938 sk_free(sk); in ax25_make_new()
944 ax25_sk(sk)->cb = ax25; in ax25_make_new()
945 sk->sk_destruct = ax25_free_sock; in ax25_make_new()
946 ax25->sk = sk; in ax25_make_new()
948 return sk; in ax25_make_new()
953 struct sock *sk = sock->sk; in ax25_release() local
956 if (sk == NULL) in ax25_release()
959 sock_hold(sk); in ax25_release()
960 sock_orphan(sk); in ax25_release()
961 lock_sock(sk); in ax25_release()
962 ax25 = sk_to_ax25(sk); in ax25_release()
964 if (sk->sk_type == SOCK_SEQPACKET) { in ax25_release()
967 release_sock(sk); in ax25_release()
969 lock_sock(sk); in ax25_release()
976 release_sock(sk); in ax25_release()
978 lock_sock(sk); in ax25_release()
1008 sk->sk_state = TCP_CLOSE; in ax25_release()
1009 sk->sk_shutdown |= SEND_SHUTDOWN; in ax25_release()
1010 sk->sk_state_change(sk); in ax25_release()
1011 sock_set_flag(sk, SOCK_DESTROY); in ax25_release()
1018 sk->sk_state = TCP_CLOSE; in ax25_release()
1019 sk->sk_shutdown |= SEND_SHUTDOWN; in ax25_release()
1020 sk->sk_state_change(sk); in ax25_release()
1024 sock->sk = NULL; in ax25_release()
1025 release_sock(sk); in ax25_release()
1026 sock_put(sk); in ax25_release()
1039 struct sock *sk = sock->sk; in ax25_bind() local
1070 lock_sock(sk); in ax25_bind()
1072 ax25 = sk_to_ax25(sk); in ax25_bind()
1073 if (!sock_flag(sk, SOCK_ZAPPED)) { in ax25_bind()
1104 sock_reset_flag(sk, SOCK_ZAPPED); in ax25_bind()
1107 release_sock(sk); in ax25_bind()
1118 struct sock *sk = sock->sk; in ax25_connect() local
1119 ax25_cb *ax25 = sk_to_ax25(sk), *ax25t; in ax25_connect()
1145 lock_sock(sk); in ax25_connect()
1149 switch (sk->sk_state) { in ax25_connect()
1165 if (sk->sk_state == TCP_ESTABLISHED && sk->sk_type == SOCK_SEQPACKET) { in ax25_connect()
1170 sk->sk_state = TCP_CLOSE; in ax25_connect()
1213 if (sock_flag(sk, SOCK_ZAPPED)) { in ax25_connect()
1232 if (sk->sk_type == SOCK_SEQPACKET && in ax25_connect()
1245 if (sk->sk_type != SOCK_SEQPACKET) { in ax25_connect()
1247 sk->sk_state = TCP_ESTABLISHED; in ax25_connect()
1253 sk->sk_state = TCP_SYN_SENT; in ax25_connect()
1278 if (sk->sk_state != TCP_ESTABLISHED && (flags & O_NONBLOCK)) { in ax25_connect()
1283 if (sk->sk_state == TCP_SYN_SENT) { in ax25_connect()
1287 prepare_to_wait(sk_sleep(sk), &wait, in ax25_connect()
1289 if (sk->sk_state != TCP_SYN_SENT) in ax25_connect()
1292 release_sock(sk); in ax25_connect()
1294 lock_sock(sk); in ax25_connect()
1300 finish_wait(sk_sleep(sk), &wait); in ax25_connect()
1306 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_connect()
1309 err = sock_error(sk); /* Always set at this point */ in ax25_connect()
1317 release_sock(sk); in ax25_connect()
1327 struct sock *sk; in ax25_accept() local
1333 if ((sk = sock->sk) == NULL) in ax25_accept()
1336 lock_sock(sk); in ax25_accept()
1337 if (sk->sk_type != SOCK_SEQPACKET) { in ax25_accept()
1342 if (sk->sk_state != TCP_LISTEN) { in ax25_accept()
1352 prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); in ax25_accept()
1353 skb = skb_dequeue(&sk->sk_receive_queue); in ax25_accept()
1362 release_sock(sk); in ax25_accept()
1364 lock_sock(sk); in ax25_accept()
1370 finish_wait(sk_sleep(sk), &wait); in ax25_accept()
1375 newsk = skb->sk; in ax25_accept()
1380 sk->sk_ack_backlog--; in ax25_accept()
1384 release_sock(sk); in ax25_accept()
1393 struct sock *sk = sock->sk; in ax25_getname() local
1399 lock_sock(sk); in ax25_getname()
1400 ax25 = sk_to_ax25(sk); in ax25_getname()
1403 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_getname()
1432 release_sock(sk); in ax25_getname()
1440 struct sock *sk = sock->sk; in ax25_sendmsg() local
1451 lock_sock(sk); in ax25_sendmsg()
1452 ax25 = sk_to_ax25(sk); in ax25_sendmsg()
1454 if (sock_flag(sk, SOCK_ZAPPED)) { in ax25_sendmsg()
1459 if (sk->sk_shutdown & SEND_SHUTDOWN) { in ax25_sendmsg()
1518 if (sk->sk_type == SOCK_SEQPACKET && in ax25_sendmsg()
1533 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_sendmsg()
1546 skb = sock_alloc_send_skb(sk, size, msg->msg_flags&MSG_DONTWAIT, &err); in ax25_sendmsg()
1563 *skb_push(skb, 1) = sk->sk_protocol; in ax25_sendmsg()
1565 if (sk->sk_type == SOCK_SEQPACKET) { in ax25_sendmsg()
1567 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_sendmsg()
1598 release_sock(sk); in ax25_sendmsg()
1606 struct sock *sk = sock->sk; in ax25_recvmsg() local
1611 lock_sock(sk); in ax25_recvmsg()
1616 if (sk->sk_type == SOCK_SEQPACKET && sk->sk_state != TCP_ESTABLISHED) { in ax25_recvmsg()
1622 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, in ax25_recvmsg()
1627 if (!sk_to_ax25(sk)->pidincl) in ax25_recvmsg()
1666 skb_free_datagram(sk, skb); in ax25_recvmsg()
1670 release_sock(sk); in ax25_recvmsg()
1675 static int ax25_shutdown(struct socket *sk, int how) in ax25_shutdown() argument
1683 struct sock *sk = sock->sk; in ax25_ioctl() local
1687 lock_sock(sk); in ax25_ioctl()
1692 amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk); in ax25_ioctl()
1703 if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL) in ax25_ioctl()
1710 res = sock_get_timestamp(sk, argp); in ax25_ioctl()
1714 res = sock_get_timestampns(sk, argp); in ax25_ioctl()
1768 ax25_cb *ax25 = sk_to_ax25(sk); in ax25_ioctl()
1782 ax25_info.rcv_q = sk_rmem_alloc_get(sk); in ax25_ioctl()
1783 ax25_info.snd_q = sk_wmem_alloc_get(sk); in ax25_ioctl()
1846 release_sock(sk); in ax25_ioctl()
1909 if (ax25->sk != NULL) { in ax25_info_show()
1911 sk_wmem_alloc_get(ax25->sk), in ax25_info_show()
1912 sk_rmem_alloc_get(ax25->sk), in ax25_info_show()
1913 sock_i_ino(ax25->sk)); in ax25_info_show()