Lines Matching refs:sk

42 static void __vcc_insert_socket(struct sock *sk)  in __vcc_insert_socket()  argument
44 struct atm_vcc *vcc = atm_sk(sk); in __vcc_insert_socket()
46 sk->sk_hash = vcc->vci & (VCC_HTABLE_SIZE - 1); in __vcc_insert_socket()
47 sk_add_node(sk, head); in __vcc_insert_socket()
50 void vcc_insert_socket(struct sock *sk) in vcc_insert_socket() argument
53 __vcc_insert_socket(sk); in vcc_insert_socket()
58 static void vcc_remove_socket(struct sock *sk) in vcc_remove_socket() argument
61 sk_del_node_init(sk); in vcc_remove_socket()
68 struct sock *sk = sk_atm(vcc); in alloc_tx() local
70 if (sk_wmem_alloc_get(sk) && !atm_may_send(vcc, size)) { in alloc_tx()
72 sk_wmem_alloc_get(sk), size, sk->sk_sndbuf); in alloc_tx()
77 pr_debug("%d += %d\n", sk_wmem_alloc_get(sk), skb->truesize); in alloc_tx()
78 atomic_add(skb->truesize, &sk->sk_wmem_alloc); in alloc_tx()
82 static void vcc_sock_destruct(struct sock *sk) in vcc_sock_destruct() argument
84 if (atomic_read(&sk->sk_rmem_alloc)) in vcc_sock_destruct()
86 __func__, atomic_read(&sk->sk_rmem_alloc)); in vcc_sock_destruct()
88 if (atomic_read(&sk->sk_wmem_alloc)) in vcc_sock_destruct()
90 __func__, atomic_read(&sk->sk_wmem_alloc)); in vcc_sock_destruct()
93 static void vcc_def_wakeup(struct sock *sk) in vcc_def_wakeup() argument
98 wq = rcu_dereference(sk->sk_wq); in vcc_def_wakeup()
104 static inline int vcc_writable(struct sock *sk) in vcc_writable() argument
106 struct atm_vcc *vcc = atm_sk(sk); in vcc_writable()
109 atomic_read(&sk->sk_wmem_alloc)) <= sk->sk_sndbuf; in vcc_writable()
112 static void vcc_write_space(struct sock *sk) in vcc_write_space() argument
118 if (vcc_writable(sk)) { in vcc_write_space()
119 wq = rcu_dereference(sk->sk_wq); in vcc_write_space()
123 sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT); in vcc_write_space()
129 static void vcc_release_cb(struct sock *sk) in vcc_release_cb() argument
131 struct atm_vcc *vcc = atm_sk(sk); in vcc_release_cb()
146 struct sock *sk; in vcc_create() local
149 sock->sk = NULL; in vcc_create()
152 sk = sk_alloc(net, family, GFP_KERNEL, &vcc_proto, kern); in vcc_create()
153 if (!sk) in vcc_create()
155 sock_init_data(sock, sk); in vcc_create()
156 sk->sk_state_change = vcc_def_wakeup; in vcc_create()
157 sk->sk_write_space = vcc_write_space; in vcc_create()
159 vcc = atm_sk(sk); in vcc_create()
164 atomic_set(&sk->sk_wmem_alloc, 1); in vcc_create()
165 atomic_set(&sk->sk_rmem_alloc, 0); in vcc_create()
173 sk->sk_destruct = vcc_sock_destruct; in vcc_create()
177 static void vcc_destroy_socket(struct sock *sk) in vcc_destroy_socket() argument
179 struct atm_vcc *vcc = atm_sk(sk); in vcc_destroy_socket()
191 while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) { in vcc_destroy_socket()
200 vcc_remove_socket(sk); in vcc_destroy_socket()
205 struct sock *sk = sock->sk; in vcc_release() local
207 if (sk) { in vcc_release()
208 lock_sock(sk); in vcc_release()
209 vcc_destroy_socket(sock->sk); in vcc_release()
210 release_sock(sk); in vcc_release()
211 sock_put(sk); in vcc_release()
219 struct sock *sk = sk_atm(vcc); in vcc_release_async() local
222 sk->sk_shutdown |= RCV_SHUTDOWN; in vcc_release_async()
223 sk->sk_err = -reply; in vcc_release_async()
225 sk->sk_state_change(sk); in vcc_release_async()
389 struct sock *sk = sk_atm(vcc); in __vcc_connect() local
410 __vcc_insert_socket(sk); in __vcc_connect()
458 vcc_remove_socket(sk); in __vcc_connect()
529 struct sock *sk = sock->sk; in vcc_recvmsg() local
547 skb = skb_recv_datagram(sk, flags, flags & MSG_DONTWAIT, &error); in vcc_recvmsg()
560 sock_recv_ts_and_drops(msg, sk, skb); in vcc_recvmsg()
563 pr_debug("%d -= %d\n", atomic_read(&sk->sk_rmem_alloc), in vcc_recvmsg()
568 skb_free_datagram(sk, skb); in vcc_recvmsg()
574 struct sock *sk = sock->sk; in vcc_sendmsg() local
580 lock_sock(sk); in vcc_sendmsg()
607 prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); in vcc_sendmsg()
626 prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); in vcc_sendmsg()
628 finish_wait(sk_sleep(sk), &wait); in vcc_sendmsg()
643 release_sock(sk); in vcc_sendmsg()
649 struct sock *sk = sock->sk; in vcc_poll() local
653 sock_poll_wait(file, sk_sleep(sk), wait); in vcc_poll()
659 if (sk->sk_err) in vcc_poll()
667 if (!skb_queue_empty(&sk->sk_receive_queue)) in vcc_poll()
676 vcc_writable(sk)) in vcc_poll()