Lines Matching refs:sk
69 void bt_sock_reclassify_lock(struct sock *sk, int proto) in bt_sock_reclassify_lock() argument
71 BUG_ON(!sk); in bt_sock_reclassify_lock()
72 BUG_ON(!sock_allow_reclassification(sk)); in bt_sock_reclassify_lock()
74 sock_lock_init_class_and_name(sk, in bt_sock_reclassify_lock()
132 bt_sock_reclassify_lock(sock->sk, proto); in bt_sock_create()
141 void bt_sock_link(struct bt_sock_list *l, struct sock *sk) in bt_sock_link() argument
144 sk_add_node(sk, &l->head); in bt_sock_link()
149 void bt_sock_unlink(struct bt_sock_list *l, struct sock *sk) in bt_sock_unlink() argument
152 sk_del_node_init(sk); in bt_sock_unlink()
157 void bt_accept_enqueue(struct sock *parent, struct sock *sk, bool bh) in bt_accept_enqueue() argument
159 BT_DBG("parent %p, sk %p", parent, sk); in bt_accept_enqueue()
161 sock_hold(sk); in bt_accept_enqueue()
164 bh_lock_sock_nested(sk); in bt_accept_enqueue()
166 lock_sock_nested(sk, SINGLE_DEPTH_NESTING); in bt_accept_enqueue()
168 list_add_tail(&bt_sk(sk)->accept_q, &bt_sk(parent)->accept_q); in bt_accept_enqueue()
169 bt_sk(sk)->parent = parent; in bt_accept_enqueue()
172 bh_unlock_sock(sk); in bt_accept_enqueue()
174 release_sock(sk); in bt_accept_enqueue()
183 void bt_accept_unlink(struct sock *sk) in bt_accept_unlink() argument
185 BT_DBG("sk %p state %d", sk, sk->sk_state); in bt_accept_unlink()
187 list_del_init(&bt_sk(sk)->accept_q); in bt_accept_unlink()
188 sk_acceptq_removed(bt_sk(sk)->parent); in bt_accept_unlink()
189 bt_sk(sk)->parent = NULL; in bt_accept_unlink()
190 sock_put(sk); in bt_accept_unlink()
197 struct sock *sk; in bt_accept_dequeue() local
203 sk = (struct sock *)s; in bt_accept_dequeue()
206 sock_hold(sk); in bt_accept_dequeue()
207 lock_sock(sk); in bt_accept_dequeue()
212 if (!bt_sk(sk)->parent) { in bt_accept_dequeue()
213 BT_DBG("sk %p, already unlinked", sk); in bt_accept_dequeue()
214 release_sock(sk); in bt_accept_dequeue()
215 sock_put(sk); in bt_accept_dequeue()
225 sock_put(sk); in bt_accept_dequeue()
228 if (sk->sk_state == BT_CLOSED) { in bt_accept_dequeue()
229 bt_accept_unlink(sk); in bt_accept_dequeue()
230 release_sock(sk); in bt_accept_dequeue()
234 if (sk->sk_state == BT_CONNECTED || !newsock || in bt_accept_dequeue()
236 bt_accept_unlink(sk); in bt_accept_dequeue()
238 sock_graft(sk, newsock); in bt_accept_dequeue()
240 release_sock(sk); in bt_accept_dequeue()
241 return sk; in bt_accept_dequeue()
244 release_sock(sk); in bt_accept_dequeue()
255 struct sock *sk = sock->sk; in bt_sock_recvmsg() local
261 BT_DBG("sock %p sk %p len %zu", sock, sk, len); in bt_sock_recvmsg()
266 lock_sock(sk); in bt_sock_recvmsg()
268 skb = skb_recv_datagram(sk, flags, noblock, &err); in bt_sock_recvmsg()
270 if (sk->sk_shutdown & RCV_SHUTDOWN) in bt_sock_recvmsg()
273 release_sock(sk); in bt_sock_recvmsg()
287 sock_recv_ts_and_drops(msg, sk, skb); in bt_sock_recvmsg()
289 if (msg->msg_name && bt_sk(sk)->skb_msg_name) in bt_sock_recvmsg()
290 bt_sk(sk)->skb_msg_name(skb, msg->msg_name, in bt_sock_recvmsg()
293 if (bt_sk(sk)->skb_put_cmsg) in bt_sock_recvmsg()
294 bt_sk(sk)->skb_put_cmsg(skb, msg, sk); in bt_sock_recvmsg()
297 skb_free_datagram(sk, skb); in bt_sock_recvmsg()
299 release_sock(sk); in bt_sock_recvmsg()
308 static long bt_sock_data_wait(struct sock *sk, long timeo) in bt_sock_data_wait() argument
312 add_wait_queue(sk_sleep(sk), &wait); in bt_sock_data_wait()
316 if (!skb_queue_empty(&sk->sk_receive_queue)) in bt_sock_data_wait()
319 if (sk->sk_err || (sk->sk_shutdown & RCV_SHUTDOWN)) in bt_sock_data_wait()
325 sk_set_bit(SOCKWQ_ASYNC_WAITDATA, sk); in bt_sock_data_wait()
326 release_sock(sk); in bt_sock_data_wait()
328 lock_sock(sk); in bt_sock_data_wait()
329 sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk); in bt_sock_data_wait()
333 remove_wait_queue(sk_sleep(sk), &wait); in bt_sock_data_wait()
340 struct sock *sk = sock->sk; in bt_sock_stream_recvmsg() local
348 BT_DBG("sk %p size %zu", sk, size); in bt_sock_stream_recvmsg()
350 lock_sock(sk); in bt_sock_stream_recvmsg()
352 target = sock_rcvlowat(sk, flags & MSG_WAITALL, size); in bt_sock_stream_recvmsg()
353 timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); in bt_sock_stream_recvmsg()
359 skb = skb_dequeue(&sk->sk_receive_queue); in bt_sock_stream_recvmsg()
364 err = sock_error(sk); in bt_sock_stream_recvmsg()
367 if (sk->sk_shutdown & RCV_SHUTDOWN) in bt_sock_stream_recvmsg()
374 timeo = bt_sock_data_wait(sk, timeo); in bt_sock_stream_recvmsg()
385 skb_queue_head(&sk->sk_receive_queue, skb); in bt_sock_stream_recvmsg()
393 sock_recv_ts_and_drops(msg, sk, skb); in bt_sock_stream_recvmsg()
424 skb_queue_head(&sk->sk_receive_queue, skb); in bt_sock_stream_recvmsg()
431 skb_queue_head(&sk->sk_receive_queue, skb); in bt_sock_stream_recvmsg()
437 release_sock(sk); in bt_sock_stream_recvmsg()
445 struct sock *sk; in bt_accept_poll() local
448 sk = (struct sock *)s; in bt_accept_poll()
449 if (sk->sk_state == BT_CONNECTED || in bt_accept_poll()
451 sk->sk_state == BT_CONNECT2)) in bt_accept_poll()
461 struct sock *sk = sock->sk; in bt_sock_poll() local
464 poll_wait(file, sk_sleep(sk), wait); in bt_sock_poll()
466 if (sk->sk_state == BT_LISTEN) in bt_sock_poll()
467 return bt_accept_poll(sk); in bt_sock_poll()
469 if (sk->sk_err || !skb_queue_empty_lockless(&sk->sk_error_queue)) in bt_sock_poll()
471 (sock_flag(sk, SOCK_SELECT_ERR_QUEUE) ? EPOLLPRI : 0); in bt_sock_poll()
473 if (sk->sk_shutdown & RCV_SHUTDOWN) in bt_sock_poll()
476 if (sk->sk_shutdown == SHUTDOWN_MASK) in bt_sock_poll()
479 if (!skb_queue_empty_lockless(&sk->sk_receive_queue)) in bt_sock_poll()
482 if (sk->sk_state == BT_CLOSED) in bt_sock_poll()
485 if (sk->sk_state == BT_CONNECT || in bt_sock_poll()
486 sk->sk_state == BT_CONNECT2 || in bt_sock_poll()
487 sk->sk_state == BT_CONFIG) in bt_sock_poll()
490 if (!test_bit(BT_SK_SUSPEND, &bt_sk(sk)->flags) && sock_writeable(sk)) in bt_sock_poll()
493 sk_set_bit(SOCKWQ_ASYNC_NOSPACE, sk); in bt_sock_poll()
501 struct sock *sk = sock->sk; in bt_sock_ioctl() local
506 BT_DBG("sk %p cmd %x arg %lx", sk, cmd, arg); in bt_sock_ioctl()
510 if (sk->sk_state == BT_LISTEN) in bt_sock_ioctl()
513 amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk); in bt_sock_ioctl()
520 if (sk->sk_state == BT_LISTEN) in bt_sock_ioctl()
523 lock_sock(sk); in bt_sock_ioctl()
524 skb = skb_peek(&sk->sk_receive_queue); in bt_sock_ioctl()
526 release_sock(sk); in bt_sock_ioctl()
540 int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo) in bt_sock_wait_state() argument
545 BT_DBG("sk %p", sk); in bt_sock_wait_state()
547 add_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_state()
549 while (sk->sk_state != state) { in bt_sock_wait_state()
560 release_sock(sk); in bt_sock_wait_state()
562 lock_sock(sk); in bt_sock_wait_state()
565 err = sock_error(sk); in bt_sock_wait_state()
570 remove_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_state()
576 int bt_sock_wait_ready(struct sock *sk, unsigned long flags) in bt_sock_wait_ready() argument
582 BT_DBG("sk %p", sk); in bt_sock_wait_ready()
584 timeo = sock_sndtimeo(sk, flags & O_NONBLOCK); in bt_sock_wait_ready()
586 add_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_ready()
588 while (test_bit(BT_SK_SUSPEND, &bt_sk(sk)->flags)) { in bt_sock_wait_ready()
599 release_sock(sk); in bt_sock_wait_ready()
601 lock_sock(sk); in bt_sock_wait_ready()
604 err = sock_error(sk); in bt_sock_wait_ready()
609 remove_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_ready()
654 struct sock *sk = sk_entry(v); in bt_seq_show() local
655 struct bt_sock *bt = bt_sk(sk); in bt_seq_show()
659 sk, in bt_seq_show()
660 refcount_read(&sk->sk_refcnt), in bt_seq_show()
661 sk_rmem_alloc_get(sk), in bt_seq_show()
662 sk_wmem_alloc_get(sk), in bt_seq_show()
663 from_kuid(seq_user_ns(seq), sock_i_uid(sk)), in bt_seq_show()
664 sock_i_ino(sk), in bt_seq_show()