Lines Matching refs:sk
80 static inline void __atalk_insert_socket(struct sock *sk) in __atalk_insert_socket() argument
82 sk_add_node(sk, &atalk_sockets); in __atalk_insert_socket()
85 static inline void atalk_remove_socket(struct sock *sk) in atalk_remove_socket() argument
88 sk_del_node_init(sk); in atalk_remove_socket()
139 static struct sock *atalk_find_or_insert_socket(struct sock *sk, in atalk_find_or_insert_socket() argument
155 __atalk_insert_socket(sk); /* Wheee, it's free, assign and insert. */ in atalk_find_or_insert_socket()
163 struct sock *sk = (struct sock *)data; in atalk_destroy_timer() local
165 if (sk_has_allocations(sk)) { in atalk_destroy_timer()
166 sk->sk_timer.expires = jiffies + SOCK_DESTROY_TIME; in atalk_destroy_timer()
167 add_timer(&sk->sk_timer); in atalk_destroy_timer()
169 sock_put(sk); in atalk_destroy_timer()
172 static inline void atalk_destroy_socket(struct sock *sk) in atalk_destroy_socket() argument
174 atalk_remove_socket(sk); in atalk_destroy_socket()
175 skb_queue_purge(&sk->sk_receive_queue); in atalk_destroy_socket()
177 if (sk_has_allocations(sk)) { in atalk_destroy_socket()
178 setup_timer(&sk->sk_timer, atalk_destroy_timer, in atalk_destroy_socket()
179 (unsigned long)sk); in atalk_destroy_socket()
180 sk->sk_timer.expires = jiffies + SOCK_DESTROY_TIME; in atalk_destroy_socket()
181 add_timer(&sk->sk_timer); in atalk_destroy_socket()
183 sock_put(sk); in atalk_destroy_socket()
1020 struct sock *sk; in atalk_create() local
1033 sk = sk_alloc(net, PF_APPLETALK, GFP_KERNEL, &ddp_proto, kern); in atalk_create()
1034 if (!sk) in atalk_create()
1038 sock_init_data(sock, sk); in atalk_create()
1041 sock_set_flag(sk, SOCK_ZAPPED); in atalk_create()
1049 struct sock *sk = sock->sk; in atalk_release() local
1051 if (sk) { in atalk_release()
1052 sock_hold(sk); in atalk_release()
1053 lock_sock(sk); in atalk_release()
1055 sock_orphan(sk); in atalk_release()
1056 sock->sk = NULL; in atalk_release()
1057 atalk_destroy_socket(sk); in atalk_release()
1059 release_sock(sk); in atalk_release()
1060 sock_put(sk); in atalk_release()
1075 static int atalk_pick_and_bind_port(struct sock *sk, struct sockaddr_at *sat) in atalk_pick_and_bind_port() argument
1096 __atalk_insert_socket(sk); in atalk_pick_and_bind_port()
1097 at_sk(sk)->src_port = sat->sat_port; in atalk_pick_and_bind_port()
1110 static int atalk_autobind(struct sock *sk) in atalk_autobind() argument
1112 struct atalk_sock *at = at_sk(sk); in atalk_autobind()
1123 n = atalk_pick_and_bind_port(sk, &sat); in atalk_autobind()
1125 sock_reset_flag(sk, SOCK_ZAPPED); in atalk_autobind()
1134 struct sock *sk = sock->sk; in atalk_bind() local
1135 struct atalk_sock *at = at_sk(sk); in atalk_bind()
1138 if (!sock_flag(sk, SOCK_ZAPPED) || in atalk_bind()
1145 lock_sock(sk); in atalk_bind()
1166 err = atalk_pick_and_bind_port(sk, addr); in atalk_bind()
1174 if (atalk_find_or_insert_socket(sk, addr)) in atalk_bind()
1178 sock_reset_flag(sk, SOCK_ZAPPED); in atalk_bind()
1181 release_sock(sk); in atalk_bind()
1189 struct sock *sk = sock->sk; in atalk_connect() local
1190 struct atalk_sock *at = at_sk(sk); in atalk_connect()
1194 sk->sk_state = TCP_CLOSE; in atalk_connect()
1206 !sock_flag(sk, SOCK_BROADCAST)) { in atalk_connect()
1215 lock_sock(sk); in atalk_connect()
1217 if (sock_flag(sk, SOCK_ZAPPED)) in atalk_connect()
1218 if (atalk_autobind(sk) < 0) in atalk_connect()
1230 sk->sk_state = TCP_ESTABLISHED; in atalk_connect()
1233 release_sock(sk); in atalk_connect()
1245 struct sock *sk = sock->sk; in atalk_getname() local
1246 struct atalk_sock *at = at_sk(sk); in atalk_getname()
1249 lock_sock(sk); in atalk_getname()
1251 if (sock_flag(sk, SOCK_ZAPPED)) in atalk_getname()
1252 if (atalk_autobind(sk) < 0) in atalk_getname()
1260 if (sk->sk_state != TCP_ESTABLISHED) in atalk_getname()
1277 release_sock(sk); in atalk_getname()
1564 struct sock *sk = sock->sk; in atalk_sendmsg() local
1565 struct atalk_sock *at = at_sk(sk); in atalk_sendmsg()
1583 lock_sock(sk); in atalk_sendmsg()
1586 if (sock_flag(sk, SOCK_ZAPPED)) in atalk_sendmsg()
1587 if (atalk_autobind(sk) < 0) in atalk_sendmsg()
1598 !sock_flag(sk, SOCK_BROADCAST)) { in atalk_sendmsg()
1603 if (sk->sk_state != TCP_ESTABLISHED) in atalk_sendmsg()
1613 SOCK_DEBUG(sk, "SK %p: Got address.\n", sk); in atalk_sendmsg()
1634 SOCK_DEBUG(sk, "SK %p: Size needed %d, device %s\n", in atalk_sendmsg()
1635 sk, size, dev->name); in atalk_sendmsg()
1638 release_sock(sk); in atalk_sendmsg()
1639 skb = sock_alloc_send_skb(sk, size, (flags & MSG_DONTWAIT), &err); in atalk_sendmsg()
1640 lock_sock(sk); in atalk_sendmsg()
1648 SOCK_DEBUG(sk, "SK %p: Begin build.\n", sk); in atalk_sendmsg()
1659 SOCK_DEBUG(sk, "SK %p: Copy user data (%Zd bytes).\n", sk, len); in atalk_sendmsg()
1668 if (sk->sk_no_check_tx) in atalk_sendmsg()
1683 SOCK_DEBUG(sk, "SK %p: send out(copy).\n", sk); in atalk_sendmsg()
1692 SOCK_DEBUG(sk, "SK %p: Loop back.\n", sk); in atalk_sendmsg()
1712 SOCK_DEBUG(sk, "SK %p: send out.\n", sk); in atalk_sendmsg()
1723 SOCK_DEBUG(sk, "SK %p: Done write (%Zd).\n", sk, len); in atalk_sendmsg()
1726 release_sock(sk); in atalk_sendmsg()
1733 struct sock *sk = sock->sk; in atalk_recvmsg() local
1740 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, in atalk_recvmsg()
1742 lock_sock(sk); in atalk_recvmsg()
1751 if (sk->sk_type != SOCK_RAW) { in atalk_recvmsg()
1771 skb_free_datagram(sk, skb); /* Free the datagram. */ in atalk_recvmsg()
1774 release_sock(sk); in atalk_recvmsg()
1785 struct sock *sk = sock->sk; in atalk_ioctl() local
1791 long amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk); in atalk_ioctl()
1803 struct sk_buff *skb = skb_peek(&sk->sk_receive_queue); in atalk_ioctl()
1812 rc = sock_get_timestamp(sk, argp); in atalk_ioctl()
1815 rc = sock_get_timestampns(sk, argp); in atalk_ioctl()