Lines Matching refs:sk
67 void bt_sock_reclassify_lock(struct sock *sk, int proto) in bt_sock_reclassify_lock() argument
69 BUG_ON(!sk); in bt_sock_reclassify_lock()
70 BUG_ON(sock_owned_by_user(sk)); in bt_sock_reclassify_lock()
72 sock_lock_init_class_and_name(sk, in bt_sock_reclassify_lock()
130 bt_sock_reclassify_lock(sock->sk, proto); in bt_sock_create()
139 void bt_sock_link(struct bt_sock_list *l, struct sock *sk) in bt_sock_link() argument
142 sk_add_node(sk, &l->head); in bt_sock_link()
147 void bt_sock_unlink(struct bt_sock_list *l, struct sock *sk) in bt_sock_unlink() argument
150 sk_del_node_init(sk); in bt_sock_unlink()
155 void bt_accept_enqueue(struct sock *parent, struct sock *sk) in bt_accept_enqueue() argument
157 BT_DBG("parent %p, sk %p", parent, sk); in bt_accept_enqueue()
159 sock_hold(sk); in bt_accept_enqueue()
160 list_add_tail(&bt_sk(sk)->accept_q, &bt_sk(parent)->accept_q); in bt_accept_enqueue()
161 bt_sk(sk)->parent = parent; in bt_accept_enqueue()
166 void bt_accept_unlink(struct sock *sk) in bt_accept_unlink() argument
168 BT_DBG("sk %p state %d", sk, sk->sk_state); in bt_accept_unlink()
170 list_del_init(&bt_sk(sk)->accept_q); in bt_accept_unlink()
171 bt_sk(sk)->parent->sk_ack_backlog--; in bt_accept_unlink()
172 bt_sk(sk)->parent = NULL; in bt_accept_unlink()
173 sock_put(sk); in bt_accept_unlink()
180 struct sock *sk; in bt_accept_dequeue() local
185 sk = (struct sock *) list_entry(p, struct bt_sock, accept_q); in bt_accept_dequeue()
187 lock_sock(sk); in bt_accept_dequeue()
190 if (sk->sk_state == BT_CLOSED) { in bt_accept_dequeue()
191 release_sock(sk); in bt_accept_dequeue()
192 bt_accept_unlink(sk); in bt_accept_dequeue()
196 if (sk->sk_state == BT_CONNECTED || !newsock || in bt_accept_dequeue()
198 bt_accept_unlink(sk); in bt_accept_dequeue()
200 sock_graft(sk, newsock); in bt_accept_dequeue()
202 release_sock(sk); in bt_accept_dequeue()
203 return sk; in bt_accept_dequeue()
206 release_sock(sk); in bt_accept_dequeue()
217 struct sock *sk = sock->sk; in bt_sock_recvmsg() local
222 BT_DBG("sock %p sk %p len %zu", sock, sk, len); in bt_sock_recvmsg()
227 skb = skb_recv_datagram(sk, flags, noblock, &err); in bt_sock_recvmsg()
229 if (sk->sk_shutdown & RCV_SHUTDOWN) in bt_sock_recvmsg()
244 sock_recv_ts_and_drops(msg, sk, skb); in bt_sock_recvmsg()
246 if (bt_sk(sk)->skb_msg_name) in bt_sock_recvmsg()
247 bt_sk(sk)->skb_msg_name(skb, msg->msg_name, in bt_sock_recvmsg()
251 skb_free_datagram(sk, skb); in bt_sock_recvmsg()
257 static long bt_sock_data_wait(struct sock *sk, long timeo) in bt_sock_data_wait() argument
261 add_wait_queue(sk_sleep(sk), &wait); in bt_sock_data_wait()
265 if (!skb_queue_empty(&sk->sk_receive_queue)) in bt_sock_data_wait()
268 if (sk->sk_err || (sk->sk_shutdown & RCV_SHUTDOWN)) in bt_sock_data_wait()
274 sk_set_bit(SOCKWQ_ASYNC_WAITDATA, sk); in bt_sock_data_wait()
275 release_sock(sk); in bt_sock_data_wait()
277 lock_sock(sk); in bt_sock_data_wait()
278 sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk); in bt_sock_data_wait()
282 remove_wait_queue(sk_sleep(sk), &wait); in bt_sock_data_wait()
289 struct sock *sk = sock->sk; in bt_sock_stream_recvmsg() local
297 BT_DBG("sk %p size %zu", sk, size); in bt_sock_stream_recvmsg()
299 lock_sock(sk); in bt_sock_stream_recvmsg()
301 target = sock_rcvlowat(sk, flags & MSG_WAITALL, size); in bt_sock_stream_recvmsg()
302 timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); in bt_sock_stream_recvmsg()
308 skb = skb_dequeue(&sk->sk_receive_queue); in bt_sock_stream_recvmsg()
313 err = sock_error(sk); in bt_sock_stream_recvmsg()
316 if (sk->sk_shutdown & RCV_SHUTDOWN) in bt_sock_stream_recvmsg()
323 timeo = bt_sock_data_wait(sk, timeo); in bt_sock_stream_recvmsg()
334 skb_queue_head(&sk->sk_receive_queue, skb); in bt_sock_stream_recvmsg()
342 sock_recv_ts_and_drops(msg, sk, skb); in bt_sock_stream_recvmsg()
373 skb_queue_head(&sk->sk_receive_queue, skb); in bt_sock_stream_recvmsg()
380 skb_queue_head(&sk->sk_receive_queue, skb); in bt_sock_stream_recvmsg()
386 release_sock(sk); in bt_sock_stream_recvmsg()
394 struct sock *sk; in bt_accept_poll() local
397 sk = (struct sock *) list_entry(p, struct bt_sock, accept_q); in bt_accept_poll()
398 if (sk->sk_state == BT_CONNECTED || in bt_accept_poll()
400 sk->sk_state == BT_CONNECT2)) in bt_accept_poll()
410 struct sock *sk = sock->sk; in bt_sock_poll() local
413 BT_DBG("sock %p, sk %p", sock, sk); in bt_sock_poll()
415 poll_wait(file, sk_sleep(sk), wait); in bt_sock_poll()
417 if (sk->sk_state == BT_LISTEN) in bt_sock_poll()
418 return bt_accept_poll(sk); in bt_sock_poll()
420 if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue)) in bt_sock_poll()
422 (sock_flag(sk, SOCK_SELECT_ERR_QUEUE) ? POLLPRI : 0); in bt_sock_poll()
424 if (sk->sk_shutdown & RCV_SHUTDOWN) in bt_sock_poll()
427 if (sk->sk_shutdown == SHUTDOWN_MASK) in bt_sock_poll()
430 if (!skb_queue_empty(&sk->sk_receive_queue)) in bt_sock_poll()
433 if (sk->sk_state == BT_CLOSED) in bt_sock_poll()
436 if (sk->sk_state == BT_CONNECT || in bt_sock_poll()
437 sk->sk_state == BT_CONNECT2 || in bt_sock_poll()
438 sk->sk_state == BT_CONFIG) in bt_sock_poll()
441 if (!test_bit(BT_SK_SUSPEND, &bt_sk(sk)->flags) && sock_writeable(sk)) in bt_sock_poll()
444 sk_set_bit(SOCKWQ_ASYNC_NOSPACE, sk); in bt_sock_poll()
452 struct sock *sk = sock->sk; in bt_sock_ioctl() local
457 BT_DBG("sk %p cmd %x arg %lx", sk, cmd, arg); in bt_sock_ioctl()
461 if (sk->sk_state == BT_LISTEN) in bt_sock_ioctl()
464 amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk); in bt_sock_ioctl()
471 if (sk->sk_state == BT_LISTEN) in bt_sock_ioctl()
474 lock_sock(sk); in bt_sock_ioctl()
475 skb = skb_peek(&sk->sk_receive_queue); in bt_sock_ioctl()
477 release_sock(sk); in bt_sock_ioctl()
482 err = sock_get_timestamp(sk, (struct timeval __user *) arg); in bt_sock_ioctl()
486 err = sock_get_timestampns(sk, (struct timespec __user *) arg); in bt_sock_ioctl()
499 int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo) in bt_sock_wait_state() argument
504 BT_DBG("sk %p", sk); in bt_sock_wait_state()
506 add_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_state()
508 while (sk->sk_state != state) { in bt_sock_wait_state()
519 release_sock(sk); in bt_sock_wait_state()
521 lock_sock(sk); in bt_sock_wait_state()
524 err = sock_error(sk); in bt_sock_wait_state()
529 remove_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_state()
535 int bt_sock_wait_ready(struct sock *sk, unsigned long flags) in bt_sock_wait_ready() argument
541 BT_DBG("sk %p", sk); in bt_sock_wait_ready()
543 timeo = sock_sndtimeo(sk, flags & O_NONBLOCK); in bt_sock_wait_ready()
545 add_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_ready()
547 while (test_bit(BT_SK_SUSPEND, &bt_sk(sk)->flags)) { in bt_sock_wait_ready()
558 release_sock(sk); in bt_sock_wait_ready()
560 lock_sock(sk); in bt_sock_wait_ready()
563 err = sock_error(sk); in bt_sock_wait_ready()
568 remove_wait_queue(sk_sleep(sk), &wait); in bt_sock_wait_ready()
621 struct sock *sk = sk_entry(v); in bt_seq_show() local
622 struct bt_sock *bt = bt_sk(sk); in bt_seq_show()
626 sk, in bt_seq_show()
627 atomic_read(&sk->sk_refcnt), in bt_seq_show()
628 sk_rmem_alloc_get(sk), in bt_seq_show()
629 sk_wmem_alloc_get(sk), in bt_seq_show()
630 from_kuid(seq_user_ns(seq), sock_i_uid(sk)), in bt_seq_show()
631 sock_i_ino(sk), in bt_seq_show()