• Home
  • Raw
  • Download

Lines Matching refs:sk

120 	if (sock->sk) {  in af_alg_release()
121 sock_put(sock->sk); in af_alg_release()
122 sock->sk = NULL; in af_alg_release()
128 void af_alg_release_parent(struct sock *sk) in af_alg_release_parent() argument
130 struct alg_sock *ask = alg_sk(sk); in af_alg_release_parent()
134 sk = ask->parent; in af_alg_release_parent()
135 ask = alg_sk(sk); in af_alg_release_parent()
138 bh_lock_sock(sk); in af_alg_release_parent()
142 bh_unlock_sock(sk); in af_alg_release_parent()
146 sock_put(sk); in af_alg_release_parent()
153 struct sock *sk = sock->sk; in alg_bind() local
154 struct alg_sock *ask = alg_sk(sk); in alg_bind()
189 lock_sock(sk); in alg_bind()
199 release_sock(sk); in alg_bind()
206 static int alg_setkey(struct sock *sk, char __user *ukey, in alg_setkey() argument
209 struct alg_sock *ask = alg_sk(sk); in alg_setkey()
214 key = sock_kmalloc(sk, keylen, GFP_KERNEL); in alg_setkey()
225 sock_kzfree_s(sk, key, keylen); in alg_setkey()
233 struct sock *sk = sock->sk; in alg_setsockopt() local
234 struct alg_sock *ask = alg_sk(sk); in alg_setsockopt()
238 lock_sock(sk); in alg_setsockopt()
255 err = alg_setkey(sk, optval, optlen); in alg_setsockopt()
266 release_sock(sk); in alg_setsockopt()
271 int af_alg_accept(struct sock *sk, struct socket *newsock, bool kern) in af_alg_accept() argument
273 struct alg_sock *ask = alg_sk(sk); in af_alg_accept()
279 lock_sock(sk); in af_alg_accept()
286 sk2 = sk_alloc(sock_net(sk), PF_ALG, GFP_KERNEL, &alg_proto, kern); in af_alg_accept()
293 security_sk_clone(sk, sk2); in af_alg_accept()
305 sock_hold(sk); in af_alg_accept()
307 alg_sk(sk2)->parent = sk; in af_alg_accept()
320 release_sock(sk); in af_alg_accept()
329 return af_alg_accept(sock->sk, newsock, kern); in alg_accept()
354 static void alg_sock_destruct(struct sock *sk) in alg_sock_destruct() argument
356 struct alg_sock *ask = alg_sk(sk); in alg_sock_destruct()
364 struct sock *sk; in alg_create() local
373 sk = sk_alloc(net, PF_ALG, GFP_KERNEL, &alg_proto, kern); in alg_create()
374 if (!sk) in alg_create()
378 sock_init_data(sock, sk); in alg_create()
380 sk->sk_destruct = alg_sock_destruct; in alg_create()
486 static int af_alg_alloc_tsgl(struct sock *sk) in af_alg_alloc_tsgl() argument
488 struct alg_sock *ask = alg_sk(sk); in af_alg_alloc_tsgl()
498 sgl = sock_kmalloc(sk, in af_alg_alloc_tsgl()
527 unsigned int af_alg_count_tsgl(struct sock *sk, size_t bytes, size_t offset) in af_alg_count_tsgl() argument
529 const struct alg_sock *ask = alg_sk(sk); in af_alg_count_tsgl()
583 void af_alg_pull_tsgl(struct sock *sk, size_t used, struct scatterlist *dst, in af_alg_pull_tsgl() argument
586 struct alg_sock *ask = alg_sk(sk); in af_alg_pull_tsgl()
637 sock_kfree_s(sk, sgl, struct_size(sgl, sg, MAX_SGL_ENTS + 1)); in af_alg_pull_tsgl()
652 struct sock *sk = areq->sk; in af_alg_free_areq_sgls() local
653 struct alg_sock *ask = alg_sk(sk); in af_alg_free_areq_sgls()
665 sock_kfree_s(sk, rsgl, sizeof(*rsgl)); in af_alg_free_areq_sgls()
676 sock_kfree_s(sk, tsgl, areq->tsgl_entries * sizeof(*tsgl)); in af_alg_free_areq_sgls()
687 static int af_alg_wait_for_wmem(struct sock *sk, unsigned int flags) in af_alg_wait_for_wmem() argument
696 sk_set_bit(SOCKWQ_ASYNC_NOSPACE, sk); in af_alg_wait_for_wmem()
698 add_wait_queue(sk_sleep(sk), &wait); in af_alg_wait_for_wmem()
703 if (sk_wait_event(sk, &timeout, af_alg_writable(sk), &wait)) { in af_alg_wait_for_wmem()
708 remove_wait_queue(sk_sleep(sk), &wait); in af_alg_wait_for_wmem()
718 void af_alg_wmem_wakeup(struct sock *sk) in af_alg_wmem_wakeup() argument
722 if (!af_alg_writable(sk)) in af_alg_wmem_wakeup()
726 wq = rcu_dereference(sk->sk_wq); in af_alg_wmem_wakeup()
731 sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN); in af_alg_wmem_wakeup()
743 int af_alg_wait_for_data(struct sock *sk, unsigned flags) in af_alg_wait_for_data() argument
746 struct alg_sock *ask = alg_sk(sk); in af_alg_wait_for_data()
754 sk_set_bit(SOCKWQ_ASYNC_WAITDATA, sk); in af_alg_wait_for_data()
756 add_wait_queue(sk_sleep(sk), &wait); in af_alg_wait_for_data()
761 if (sk_wait_event(sk, &timeout, (ctx->used || !ctx->more), in af_alg_wait_for_data()
767 remove_wait_queue(sk_sleep(sk), &wait); in af_alg_wait_for_data()
769 sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk); in af_alg_wait_for_data()
780 static void af_alg_data_wakeup(struct sock *sk) in af_alg_data_wakeup() argument
782 struct alg_sock *ask = alg_sk(sk); in af_alg_data_wakeup()
790 wq = rcu_dereference(sk->sk_wq); in af_alg_data_wakeup()
795 sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT); in af_alg_data_wakeup()
818 struct sock *sk = sock->sk; in af_alg_sendmsg() local
819 struct alg_sock *ask = alg_sk(sk); in af_alg_sendmsg()
849 lock_sock(sk); in af_alg_sendmsg()
892 if (!af_alg_writable(sk)) { in af_alg_sendmsg()
893 err = af_alg_wait_for_wmem(sk, msg->msg_flags); in af_alg_sendmsg()
899 len = min_t(unsigned long, len, af_alg_sndbuf(sk)); in af_alg_sendmsg()
901 err = af_alg_alloc_tsgl(sk); in af_alg_sendmsg()
949 af_alg_data_wakeup(sk); in af_alg_sendmsg()
950 release_sock(sk); in af_alg_sendmsg()
964 struct sock *sk = sock->sk; in af_alg_sendpage() local
965 struct alg_sock *ask = alg_sk(sk); in af_alg_sendpage()
973 lock_sock(sk); in af_alg_sendpage()
980 if (!af_alg_writable(sk)) { in af_alg_sendpage()
981 err = af_alg_wait_for_wmem(sk, flags); in af_alg_sendpage()
986 err = af_alg_alloc_tsgl(sk); in af_alg_sendpage()
1007 af_alg_data_wakeup(sk); in af_alg_sendpage()
1008 release_sock(sk); in af_alg_sendpage()
1019 struct sock *sk = areq->sk; in af_alg_free_resources() local
1022 sock_kfree_s(sk, areq, areq->areqlen); in af_alg_free_resources()
1038 struct sock *sk = areq->sk; in af_alg_async_cb() local
1046 sock_put(sk); in af_alg_async_cb()
1058 struct sock *sk = sock->sk; in af_alg_poll() local
1059 struct alg_sock *ask = alg_sk(sk); in af_alg_poll()
1069 if (af_alg_writable(sk)) in af_alg_poll()
1083 struct af_alg_async_req *af_alg_alloc_areq(struct sock *sk, in af_alg_alloc_areq() argument
1086 struct af_alg_async_req *areq = sock_kmalloc(sk, areqlen, GFP_KERNEL); in af_alg_alloc_areq()
1092 areq->sk = sk; in af_alg_alloc_areq()
1114 int af_alg_get_rsgl(struct sock *sk, struct msghdr *msg, int flags, in af_alg_get_rsgl() argument
1118 struct alg_sock *ask = alg_sk(sk); in af_alg_get_rsgl()
1128 if (!af_alg_readable(sk)) in af_alg_get_rsgl()
1137 rsgl = sock_kmalloc(sk, sizeof(*rsgl), GFP_KERNEL); in af_alg_get_rsgl()