Lines Matching refs:sk

59 static void ax25_free_sock(struct sock *sk)  in ax25_free_sock()  argument
61 ax25_cb_put(ax25_sk(sk)); in ax25_free_sock()
165 if (s->sk && !ax25cmp(&s->source_addr, addr) && in ax25_find_listener()
166 s->sk->sk_type == type && s->sk->sk_state == TCP_LISTEN) { in ax25_find_listener()
169 sock_hold(s->sk); in ax25_find_listener()
171 return s->sk; in ax25_find_listener()
186 struct sock *sk = NULL; in ax25_get_socket() local
191 if (s->sk && !ax25cmp(&s->source_addr, my_addr) && in ax25_get_socket()
193 s->sk->sk_type == type) { in ax25_get_socket()
194 sk = s->sk; in ax25_get_socket()
195 sock_hold(sk); in ax25_get_socket()
202 return sk; in ax25_get_socket()
216 if (s->sk && s->sk->sk_type != SOCK_SEQPACKET) in ax25_find_cb()
250 if (s->sk != NULL && ax25cmp(&s->source_addr, addr) == 0 && in ax25_send_to_raw()
251 s->sk->sk_type == SOCK_RAW && in ax25_send_to_raw()
252 s->sk->sk_protocol == proto && in ax25_send_to_raw()
254 atomic_read(&s->sk->sk_rmem_alloc) <= s->sk->sk_rcvbuf) { in ax25_send_to_raw()
257 if (sock_queue_rcv_skb(s->sk, copy) != 0) in ax25_send_to_raw()
275 struct sock *sk; in ax25_destroy_timer() local
277 sk=ax25->sk; in ax25_destroy_timer()
279 bh_lock_sock(sk); in ax25_destroy_timer()
280 sock_hold(sk); in ax25_destroy_timer()
282 bh_unlock_sock(sk); in ax25_destroy_timer()
283 sock_put(sk); in ax25_destroy_timer()
306 if (ax25->sk != NULL) { in ax25_destroy_socket()
307 while ((skb = skb_dequeue(&ax25->sk->sk_receive_queue)) != NULL) { in ax25_destroy_socket()
308 if (skb->sk != ax25->sk) { in ax25_destroy_socket()
310 ax25_cb *sax25 = ax25_sk(skb->sk); in ax25_destroy_socket()
313 sock_orphan(skb->sk); in ax25_destroy_socket()
316 skb->sk->sk_state = TCP_LISTEN; in ax25_destroy_socket()
324 skb_queue_purge(&ax25->sk->sk_write_queue); in ax25_destroy_socket()
327 if (ax25->sk != NULL) { in ax25_destroy_socket()
328 if (sk_has_allocations(ax25->sk)) { in ax25_destroy_socket()
335 struct sock *sk=ax25->sk; in ax25_destroy_socket() local
336 ax25->sk=NULL; in ax25_destroy_socket()
337 sock_put(sk); in ax25_destroy_socket()
538 struct sock *sk = sock->sk; in ax25_setsockopt() local
554 lock_sock(sk); in ax25_setsockopt()
555 ax25 = ax25_sk(sk); in ax25_setsockopt()
651 if (sk->sk_type == SOCK_SEQPACKET && in ax25_setsockopt()
653 sk->sk_state == TCP_LISTEN)) { in ax25_setsockopt()
672 release_sock(sk); in ax25_setsockopt()
680 struct sock *sk = sock->sk; in ax25_getsockopt() local
700 lock_sock(sk); in ax25_getsockopt()
701 ax25 = ax25_sk(sk); in ax25_getsockopt()
763 release_sock(sk); in ax25_getsockopt()
766 release_sock(sk); in ax25_getsockopt()
776 struct sock *sk = sock->sk; in ax25_listen() local
779 lock_sock(sk); in ax25_listen()
780 if (sk->sk_type == SOCK_SEQPACKET && sk->sk_state != TCP_LISTEN) { in ax25_listen()
781 sk->sk_max_ack_backlog = backlog; in ax25_listen()
782 sk->sk_state = TCP_LISTEN; in ax25_listen()
788 release_sock(sk); in ax25_listen()
806 struct sock *sk; in ax25_create() local
861 sk = sk_alloc(net, PF_AX25, GFP_ATOMIC, &ax25_proto); in ax25_create()
862 if (sk == NULL) in ax25_create()
865 ax25 = sk->sk_protinfo = ax25_create_cb(); in ax25_create()
867 sk_free(sk); in ax25_create()
871 sock_init_data(sock, sk); in ax25_create()
873 sk->sk_destruct = ax25_free_sock; in ax25_create()
875 sk->sk_protocol = protocol; in ax25_create()
877 ax25->sk = sk; in ax25_create()
884 struct sock *sk; in ax25_make_new() local
887 sk = sk_alloc(sock_net(osk), PF_AX25, GFP_ATOMIC, osk->sk_prot); in ax25_make_new()
888 if (sk == NULL) in ax25_make_new()
892 sk_free(sk); in ax25_make_new()
902 sk_free(sk); in ax25_make_new()
907 sock_init_data(NULL, sk); in ax25_make_new()
909 sk->sk_type = osk->sk_type; in ax25_make_new()
910 sk->sk_priority = osk->sk_priority; in ax25_make_new()
911 sk->sk_protocol = osk->sk_protocol; in ax25_make_new()
912 sk->sk_rcvbuf = osk->sk_rcvbuf; in ax25_make_new()
913 sk->sk_sndbuf = osk->sk_sndbuf; in ax25_make_new()
914 sk->sk_state = TCP_ESTABLISHED; in ax25_make_new()
915 sock_copy_flags(sk, osk); in ax25_make_new()
939 sk_free(sk); in ax25_make_new()
945 sk->sk_protinfo = ax25; in ax25_make_new()
946 sk->sk_destruct = ax25_free_sock; in ax25_make_new()
947 ax25->sk = sk; in ax25_make_new()
949 return sk; in ax25_make_new()
954 struct sock *sk = sock->sk; in ax25_release() local
957 if (sk == NULL) in ax25_release()
960 sock_hold(sk); in ax25_release()
961 sock_orphan(sk); in ax25_release()
962 lock_sock(sk); in ax25_release()
963 ax25 = ax25_sk(sk); in ax25_release()
965 if (sk->sk_type == SOCK_SEQPACKET) { in ax25_release()
968 release_sock(sk); in ax25_release()
970 lock_sock(sk); in ax25_release()
977 release_sock(sk); in ax25_release()
979 lock_sock(sk); in ax25_release()
1009 sk->sk_state = TCP_CLOSE; in ax25_release()
1010 sk->sk_shutdown |= SEND_SHUTDOWN; in ax25_release()
1011 sk->sk_state_change(sk); in ax25_release()
1012 sock_set_flag(sk, SOCK_DESTROY); in ax25_release()
1019 sk->sk_state = TCP_CLOSE; in ax25_release()
1020 sk->sk_shutdown |= SEND_SHUTDOWN; in ax25_release()
1021 sk->sk_state_change(sk); in ax25_release()
1025 sock->sk = NULL; in ax25_release()
1026 release_sock(sk); in ax25_release()
1027 sock_put(sk); in ax25_release()
1040 struct sock *sk = sock->sk; in ax25_bind() local
1071 lock_sock(sk); in ax25_bind()
1073 ax25 = ax25_sk(sk); in ax25_bind()
1074 if (!sock_flag(sk, SOCK_ZAPPED)) { in ax25_bind()
1105 sock_reset_flag(sk, SOCK_ZAPPED); in ax25_bind()
1108 release_sock(sk); in ax25_bind()
1119 struct sock *sk = sock->sk; in ax25_connect() local
1120 ax25_cb *ax25 = ax25_sk(sk), *ax25t; in ax25_connect()
1146 lock_sock(sk); in ax25_connect()
1150 switch (sk->sk_state) { in ax25_connect()
1166 if (sk->sk_state == TCP_ESTABLISHED && sk->sk_type == SOCK_SEQPACKET) { in ax25_connect()
1171 sk->sk_state = TCP_CLOSE; in ax25_connect()
1214 if (sock_flag(sk, SOCK_ZAPPED)) { in ax25_connect()
1233 if (sk->sk_type == SOCK_SEQPACKET && in ax25_connect()
1246 if (sk->sk_type != SOCK_SEQPACKET) { in ax25_connect()
1248 sk->sk_state = TCP_ESTABLISHED; in ax25_connect()
1254 sk->sk_state = TCP_SYN_SENT; in ax25_connect()
1279 if (sk->sk_state != TCP_ESTABLISHED && (flags & O_NONBLOCK)) { in ax25_connect()
1284 if (sk->sk_state == TCP_SYN_SENT) { in ax25_connect()
1288 prepare_to_wait(sk_sleep(sk), &wait, in ax25_connect()
1290 if (sk->sk_state != TCP_SYN_SENT) in ax25_connect()
1293 release_sock(sk); in ax25_connect()
1295 lock_sock(sk); in ax25_connect()
1301 finish_wait(sk_sleep(sk), &wait); in ax25_connect()
1307 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_connect()
1310 err = sock_error(sk); /* Always set at this point */ in ax25_connect()
1318 release_sock(sk); in ax25_connect()
1328 struct sock *sk; in ax25_accept() local
1334 if ((sk = sock->sk) == NULL) in ax25_accept()
1337 lock_sock(sk); in ax25_accept()
1338 if (sk->sk_type != SOCK_SEQPACKET) { in ax25_accept()
1343 if (sk->sk_state != TCP_LISTEN) { in ax25_accept()
1353 prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); in ax25_accept()
1354 skb = skb_dequeue(&sk->sk_receive_queue); in ax25_accept()
1363 release_sock(sk); in ax25_accept()
1365 lock_sock(sk); in ax25_accept()
1371 finish_wait(sk_sleep(sk), &wait); in ax25_accept()
1376 newsk = skb->sk; in ax25_accept()
1381 sk->sk_ack_backlog--; in ax25_accept()
1385 release_sock(sk); in ax25_accept()
1394 struct sock *sk = sock->sk; in ax25_getname() local
1400 lock_sock(sk); in ax25_getname()
1401 ax25 = ax25_sk(sk); in ax25_getname()
1404 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_getname()
1433 release_sock(sk); in ax25_getname()
1441 struct sock *sk = sock->sk; in ax25_sendmsg() local
1452 lock_sock(sk); in ax25_sendmsg()
1453 ax25 = ax25_sk(sk); in ax25_sendmsg()
1455 if (sock_flag(sk, SOCK_ZAPPED)) { in ax25_sendmsg()
1460 if (sk->sk_shutdown & SEND_SHUTDOWN) { in ax25_sendmsg()
1519 if (sk->sk_type == SOCK_SEQPACKET && in ax25_sendmsg()
1534 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_sendmsg()
1547 skb = sock_alloc_send_skb(sk, size, msg->msg_flags&MSG_DONTWAIT, &err); in ax25_sendmsg()
1564 *skb_push(skb, 1) = sk->sk_protocol; in ax25_sendmsg()
1566 if (sk->sk_type == SOCK_SEQPACKET) { in ax25_sendmsg()
1568 if (sk->sk_state != TCP_ESTABLISHED) { in ax25_sendmsg()
1599 release_sock(sk); in ax25_sendmsg()
1607 struct sock *sk = sock->sk; in ax25_recvmsg() local
1612 lock_sock(sk); in ax25_recvmsg()
1617 if (sk->sk_type == SOCK_SEQPACKET && sk->sk_state != TCP_ESTABLISHED) { in ax25_recvmsg()
1623 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, in ax25_recvmsg()
1628 if (!ax25_sk(sk)->pidincl) in ax25_recvmsg()
1667 skb_free_datagram(sk, skb); in ax25_recvmsg()
1671 release_sock(sk); in ax25_recvmsg()
1676 static int ax25_shutdown(struct socket *sk, int how) in ax25_shutdown() argument
1684 struct sock *sk = sock->sk; in ax25_ioctl() local
1688 lock_sock(sk); in ax25_ioctl()
1693 amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk); in ax25_ioctl()
1704 if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL) in ax25_ioctl()
1711 res = sock_get_timestamp(sk, argp); in ax25_ioctl()
1715 res = sock_get_timestampns(sk, argp); in ax25_ioctl()
1769 ax25_cb *ax25 = ax25_sk(sk); in ax25_ioctl()
1783 ax25_info.rcv_q = sk_rmem_alloc_get(sk); in ax25_ioctl()
1784 ax25_info.snd_q = sk_wmem_alloc_get(sk); in ax25_ioctl()
1847 release_sock(sk); in ax25_ioctl()
1910 if (ax25->sk != NULL) { in ax25_info_show()
1912 sk_wmem_alloc_get(ax25->sk), in ax25_info_show()
1913 sk_rmem_alloc_get(ax25->sk), in ax25_info_show()
1914 sock_i_ino(ax25->sk)); in ax25_info_show()