Lines Matching refs:sk
50 static int vmci_transport_recv_listen(struct sock *sk,
53 struct sock *sk,
57 struct sock *sk,
60 struct sock *sk,
63 struct sock *sk,
65 static int vmci_transport_recv_connected(struct sock *sk,
69 static bool vmci_transport_proto_to_notify_struct(struct sock *sk, u16 *proto,
74 struct sock *sk; member
276 vmci_transport_send_control_pkt(struct sock *sk, in vmci_transport_send_control_pkt() argument
288 vsk = vsock_sk(sk); in vmci_transport_send_control_pkt()
321 static int vmci_transport_send_reset(struct sock *sk, in vmci_transport_send_reset() argument
326 return vmci_transport_send_control_pkt(sk, in vmci_transport_send_reset()
332 static int vmci_transport_send_negotiate(struct sock *sk, size_t size) in vmci_transport_send_negotiate() argument
335 sk, in vmci_transport_send_negotiate()
342 static int vmci_transport_send_negotiate2(struct sock *sk, size_t size, in vmci_transport_send_negotiate2() argument
346 sk, in vmci_transport_send_negotiate2()
352 static int vmci_transport_send_qp_offer(struct sock *sk, in vmci_transport_send_qp_offer() argument
356 sk, VMCI_TRANSPORT_PACKET_TYPE_OFFER, 0, in vmci_transport_send_qp_offer()
361 static int vmci_transport_send_attach(struct sock *sk, in vmci_transport_send_attach() argument
365 sk, VMCI_TRANSPORT_PACKET_TYPE_ATTACH, in vmci_transport_send_attach()
406 int vmci_transport_send_wrote(struct sock *sk) in vmci_transport_send_wrote() argument
409 sk, VMCI_TRANSPORT_PACKET_TYPE_WROTE, 0, in vmci_transport_send_wrote()
414 int vmci_transport_send_read(struct sock *sk) in vmci_transport_send_read() argument
417 sk, VMCI_TRANSPORT_PACKET_TYPE_READ, 0, in vmci_transport_send_read()
422 int vmci_transport_send_waiting_write(struct sock *sk, in vmci_transport_send_waiting_write() argument
426 sk, VMCI_TRANSPORT_PACKET_TYPE_WAITING_WRITE, in vmci_transport_send_waiting_write()
431 int vmci_transport_send_waiting_read(struct sock *sk, in vmci_transport_send_waiting_read() argument
435 sk, VMCI_TRANSPORT_PACKET_TYPE_WAITING_READ, in vmci_transport_send_waiting_read()
443 &vsk->sk, in vmci_transport_shutdown()
450 static int vmci_transport_send_conn_request(struct sock *sk, size_t size) in vmci_transport_send_conn_request() argument
452 return vmci_transport_send_control_pkt(sk, in vmci_transport_send_conn_request()
459 static int vmci_transport_send_conn_request2(struct sock *sk, size_t size, in vmci_transport_send_conn_request2() argument
463 sk, VMCI_TRANSPORT_PACKET_TYPE_REQUEST2, in vmci_transport_send_conn_request2()
604 struct sock *sk; in vmci_transport_recv_dgram_cb() local
609 sk = (struct sock *)data; in vmci_transport_recv_dgram_cb()
620 vsk = vsock_sk(sk); in vmci_transport_recv_dgram_cb()
632 sock_hold(sk); in vmci_transport_recv_dgram_cb()
635 sk_receive_skb(sk, skb, 0); in vmci_transport_recv_dgram_cb()
664 struct sock *sk; in vmci_transport_recv_stream_cb() local
672 sk = NULL; in vmci_transport_recv_stream_cb()
697 sk = vsock_find_connected_socket(&src, &dst); in vmci_transport_recv_stream_cb()
698 if (!sk) { in vmci_transport_recv_stream_cb()
699 sk = vsock_find_bound_socket(&dst); in vmci_transport_recv_stream_cb()
700 if (!sk) { in vmci_transport_recv_stream_cb()
737 vsk = vsock_sk(sk); in vmci_transport_recv_stream_cb()
748 bh_lock_sock(sk); in vmci_transport_recv_stream_cb()
750 if (!sock_owned_by_user(sk)) { in vmci_transport_recv_stream_cb()
754 if (sk->sk_state == SS_CONNECTED) in vmci_transport_recv_stream_cb()
756 sk, pkt, true, &dst, &src, in vmci_transport_recv_stream_cb()
760 bh_unlock_sock(sk); in vmci_transport_recv_stream_cb()
774 recv_pkt_info->sk = sk; in vmci_transport_recv_stream_cb()
784 sk = NULL; in vmci_transport_recv_stream_cb()
788 if (sk) in vmci_transport_recv_stream_cb()
789 sock_put(sk); in vmci_transport_recv_stream_cb()
798 struct sock *sk = client_data; in vmci_transport_peer_attach_cb() local
804 vsk = vsock_sk(sk); in vmci_transport_peer_attach_cb()
813 bh_lock_sock(sk); in vmci_transport_peer_attach_cb()
828 bh_unlock_sock(sk); in vmci_transport_peer_attach_cb()
832 static void vmci_transport_handle_detach(struct sock *sk) in vmci_transport_handle_detach() argument
836 vsk = vsock_sk(sk); in vmci_transport_handle_detach()
838 sock_set_flag(sk, SOCK_DONE); in vmci_transport_handle_detach()
850 if (sk->sk_state == SS_CONNECTING) { in vmci_transport_handle_detach()
859 sk->sk_state = SS_UNCONNECTED; in vmci_transport_handle_detach()
860 sk->sk_err = ECONNRESET; in vmci_transport_handle_detach()
861 sk->sk_error_report(sk); in vmci_transport_handle_detach()
864 sk->sk_state = SS_UNCONNECTED; in vmci_transport_handle_detach()
866 sk->sk_state_change(sk); in vmci_transport_handle_detach()
874 struct sock *sk = client_data; in vmci_transport_peer_detach_cb() local
879 vsk = vsock_sk(sk); in vmci_transport_peer_detach_cb()
885 bh_lock_sock(sk); in vmci_transport_peer_detach_cb()
892 vmci_transport_handle_detach(sk); in vmci_transport_peer_detach_cb()
894 bh_unlock_sock(sk); in vmci_transport_peer_detach_cb()
909 struct sock *sk; in vmci_transport_recv_pkt_work() local
913 sk = recv_pkt_info->sk; in vmci_transport_recv_pkt_work()
916 lock_sock(sk); in vmci_transport_recv_pkt_work()
919 vsock_sk(sk)->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_pkt_work()
921 switch (sk->sk_state) { in vmci_transport_recv_pkt_work()
923 vmci_transport_recv_listen(sk, pkt); in vmci_transport_recv_pkt_work()
930 vmci_transport_recv_connecting_client(sk, pkt); in vmci_transport_recv_pkt_work()
933 vmci_transport_recv_connected(sk, pkt); in vmci_transport_recv_pkt_work()
942 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_pkt_work()
946 release_sock(sk); in vmci_transport_recv_pkt_work()
951 sock_put(sk); in vmci_transport_recv_pkt_work()
954 static int vmci_transport_recv_listen(struct sock *sk, in vmci_transport_recv_listen() argument
973 pending = vmci_transport_get_pending(sk, pkt); in vmci_transport_recv_listen()
982 err = vmci_transport_recv_connecting_server(sk, in vmci_transport_recv_listen()
992 vsock_remove_pending(sk, pending); in vmci_transport_recv_listen()
1019 if (sk->sk_ack_backlog >= sk->sk_max_ack_backlog) { in vmci_transport_recv_listen()
1024 pending = __vsock_create(sock_net(sk), NULL, sk, GFP_KERNEL, in vmci_transport_recv_listen()
1025 sk->sk_type); in vmci_transport_recv_listen()
1027 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_listen()
1102 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_listen()
1108 vsock_add_pending(sk, pending); in vmci_transport_recv_listen()
1109 sk->sk_ack_backlog++; in vmci_transport_recv_listen()
1127 vpending->listener = sk; in vmci_transport_recv_listen()
1128 sock_hold(sk); in vmci_transport_recv_listen()
1285 vmci_transport_recv_connecting_client(struct sock *sk, in vmci_transport_recv_connecting_client() argument
1292 vsk = vsock_sk(sk); in vmci_transport_recv_connecting_client()
1309 sk->sk_state = SS_CONNECTED; in vmci_transport_recv_connecting_client()
1310 sk->sk_socket->state = SS_CONNECTED; in vmci_transport_recv_connecting_client()
1312 sk->sk_state_change(sk); in vmci_transport_recv_connecting_client()
1332 err = vmci_transport_recv_connecting_client_negotiate(sk, pkt); in vmci_transport_recv_connecting_client()
1340 err = vmci_transport_recv_connecting_client_invalid(sk, pkt); in vmci_transport_recv_connecting_client()
1376 vmci_transport_send_reset(sk, pkt); in vmci_transport_recv_connecting_client()
1378 sk->sk_state = SS_UNCONNECTED; in vmci_transport_recv_connecting_client()
1379 sk->sk_err = skerr; in vmci_transport_recv_connecting_client()
1380 sk->sk_error_report(sk); in vmci_transport_recv_connecting_client()
1385 struct sock *sk, in vmci_transport_recv_connecting_client_negotiate() argument
1400 vsk = vsock_sk(sk); in vmci_transport_recv_connecting_client_negotiate()
1442 if (!vmci_transport_proto_to_notify_struct(sk, &version, old_proto)) { in vmci_transport_recv_connecting_client_negotiate()
1455 sk, &attach_sub_id); in vmci_transport_recv_connecting_client_negotiate()
1463 sk, &detach_sub_id); in vmci_transport_recv_connecting_client_negotiate()
1487 err = vmci_transport_send_qp_offer(sk, handle); in vmci_transport_recv_connecting_client_negotiate()
1502 vmci_trans(vsk)->notify_ops->process_negotiate(sk); in vmci_transport_recv_connecting_client_negotiate()
1520 vmci_transport_recv_connecting_client_invalid(struct sock *sk, in vmci_transport_recv_connecting_client_invalid() argument
1524 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_recv_connecting_client_invalid()
1531 sk, vmci_trans(vsk)->queue_pair_size); in vmci_transport_recv_connecting_client_invalid()
1542 static int vmci_transport_recv_connected(struct sock *sk, in vmci_transport_recv_connected() argument
1559 vsk = vsock_sk(sk); in vmci_transport_recv_connected()
1562 sk->sk_state_change(sk); in vmci_transport_recv_connected()
1567 vsk = vsock_sk(sk); in vmci_transport_recv_connected()
1577 sock_set_flag(sk, SOCK_DONE); in vmci_transport_recv_connected()
1580 sk->sk_state = SS_DISCONNECTING; in vmci_transport_recv_connected()
1582 sk->sk_state_change(sk); in vmci_transport_recv_connected()
1586 vsk = vsock_sk(sk); in vmci_transport_recv_connected()
1588 sk, pkt, false, NULL, NULL, in vmci_transport_recv_connected()
1687 &vsk->sk, in vmci_transport_dgram_bind()
1750 skb = skb_recv_datagram(&vsk->sk, flags, noblock, &err); in vmci_transport_dgram_dequeue()
1788 skb_free_datagram(&vsk->sk, skb); in vmci_transport_dgram_dequeue()
1808 struct sock *sk = &vsk->sk; in vmci_transport_connect() local
1813 sk, vmci_trans(vsk)->queue_pair_size); in vmci_transport_connect()
1815 sk->sk_state = SS_UNCONNECTED; in vmci_transport_connect()
1822 sk, vmci_trans(vsk)->queue_pair_size, in vmci_transport_connect()
1825 sk->sk_state = SS_UNCONNECTED; in vmci_transport_connect()
1921 &vsk->sk, target, data_ready_now); in vmci_transport_notify_poll_in()
1930 &vsk->sk, target, space_available_now); in vmci_transport_notify_poll_out()
1939 &vsk->sk, target, in vmci_transport_notify_recv_init()
1949 &vsk->sk, target, in vmci_transport_notify_recv_pre_block()
1959 &vsk->sk, target, in vmci_transport_notify_recv_pre_dequeue()
1971 &vsk->sk, target, copied, data_read, in vmci_transport_notify_recv_post_dequeue()
1980 &vsk->sk, in vmci_transport_notify_send_init()
1989 &vsk->sk, in vmci_transport_notify_send_pre_block()
1998 &vsk->sk, in vmci_transport_notify_send_pre_enqueue()
2008 &vsk->sk, written, in vmci_transport_notify_send_post_enqueue()
2027 static bool vmci_transport_proto_to_notify_struct(struct sock *sk, in vmci_transport_proto_to_notify_struct() argument
2031 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_proto_to_notify_struct()
2053 vmci_trans(vsk)->notify_ops->socket_init(sk); in vmci_transport_proto_to_notify_struct()