• Home
  • Raw
  • Download

Lines Matching refs:vsk

60 static bool vmci_check_transport(struct vsock_sock *vsk);
286 struct vsock_sock *vsk; in vmci_transport_send_control_pkt() local
288 vsk = vsock_sk(sk); in vmci_transport_send_control_pkt()
290 if (!vsock_addr_bound(&vsk->local_addr)) in vmci_transport_send_control_pkt()
293 if (!vsock_addr_bound(&vsk->remote_addr)) in vmci_transport_send_control_pkt()
296 return vmci_transport_alloc_send_control_pkt(&vsk->local_addr, in vmci_transport_send_control_pkt()
297 &vsk->remote_addr, in vmci_transport_send_control_pkt()
319 struct vsock_sock *vsk; in vmci_transport_send_reset() local
324 vsk = vsock_sk(sk); in vmci_transport_send_reset()
326 if (!vsock_addr_bound(&vsk->local_addr)) in vmci_transport_send_reset()
329 if (vsock_addr_bound(&vsk->remote_addr)) { in vmci_transport_send_reset()
330 dst_ptr = &vsk->remote_addr; in vmci_transport_send_reset()
336 return vmci_transport_alloc_send_control_pkt(&vsk->local_addr, dst_ptr, in vmci_transport_send_reset()
450 static int vmci_transport_shutdown(struct vsock_sock *vsk, int mode) in vmci_transport_shutdown() argument
453 &vsk->sk, in vmci_transport_shutdown()
616 struct vsock_sock *vsk; in vmci_transport_recv_dgram_cb() local
629 vsk = vsock_sk(sk); in vmci_transport_recv_dgram_cb()
630 if (!vmci_transport_allow_dgram(vsk, dg->src.context)) in vmci_transport_recv_dgram_cb()
677 struct vsock_sock *vsk; in vmci_transport_recv_stream_cb() local
746 vsk = vsock_sk(sk); in vmci_transport_recv_stream_cb()
747 if (!vmci_transport_allow_dgram(vsk, pkt->dg.src.context)) { in vmci_transport_recv_stream_cb()
761 vsk->local_addr.svm_cid = dst.svm_cid; in vmci_transport_recv_stream_cb()
764 vmci_trans(vsk)->notify_ops->handle_notify_pkt( in vmci_transport_recv_stream_cb()
805 struct vsock_sock *vsk; in vmci_transport_handle_detach() local
807 vsk = vsock_sk(sk); in vmci_transport_handle_detach()
810 if (vsk->transport != &vmci_transport) in vmci_transport_handle_detach()
813 if (!vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle)) { in vmci_transport_handle_detach()
819 vsk->peer_shutdown = SHUTDOWN_MASK; in vmci_transport_handle_detach()
828 if (vsk->local_addr.svm_cid == VMADDR_CID_HOST || in vmci_transport_handle_detach()
829 vsock_stream_has_data(vsk) <= 0) { in vmci_transport_handle_detach()
1284 struct vsock_sock *vsk; in vmci_transport_recv_connecting_client() local
1288 vsk = vsock_sk(sk); in vmci_transport_recv_connecting_client()
1294 vmci_trans(vsk)->qp_handle)) { in vmci_transport_recv_connecting_client()
1307 vsock_insert_connected(vsk); in vmci_transport_recv_connecting_client()
1314 || pkt->dg.src.context != vsk->remote_addr.svm_cid in vmci_transport_recv_connecting_client()
1315 || pkt->src_port != vsk->remote_addr.svm_port in vmci_transport_recv_connecting_client()
1316 || !vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle) in vmci_transport_recv_connecting_client()
1317 || vmci_trans(vsk)->qpair in vmci_transport_recv_connecting_client()
1318 || vmci_trans(vsk)->produce_size != 0 in vmci_transport_recv_connecting_client()
1319 || vmci_trans(vsk)->consume_size != 0 in vmci_transport_recv_connecting_client()
1320 || vmci_trans(vsk)->detach_sub_id != VMCI_INVALID_ID) { in vmci_transport_recv_connecting_client()
1352 if (vsk->ignore_connecting_rst) { in vmci_transport_recv_connecting_client()
1353 vsk->ignore_connecting_rst = false; in vmci_transport_recv_connecting_client()
1384 struct vsock_sock *vsk; in vmci_transport_recv_connecting_client_negotiate() local
1394 vsk = vsock_sk(sk); in vmci_transport_recv_connecting_client_negotiate()
1401 vsk->sent_request = false; in vmci_transport_recv_connecting_client_negotiate()
1402 vsk->ignore_connecting_rst = false; in vmci_transport_recv_connecting_client_negotiate()
1405 if (pkt->u.size < vsk->buffer_min_size || in vmci_transport_recv_connecting_client_negotiate()
1406 pkt->u.size > vsk->buffer_max_size) { in vmci_transport_recv_connecting_client_negotiate()
1413 if (vsk->local_addr.svm_cid == VMADDR_CID_ANY) in vmci_transport_recv_connecting_client_negotiate()
1414 vsk->local_addr.svm_cid = pkt->dg.dst.context; in vmci_transport_recv_connecting_client_negotiate()
1448 vmci_trans(vsk), &detach_sub_id); in vmci_transport_recv_connecting_client_negotiate()
1456 is_local = vsk->remote_addr.svm_cid == vsk->local_addr.svm_cid; in vmci_transport_recv_connecting_client_negotiate()
1463 vsk->remote_addr.svm_cid, in vmci_transport_recv_connecting_client_negotiate()
1466 vsk, in vmci_transport_recv_connecting_client_negotiate()
1467 vsk-> in vmci_transport_recv_connecting_client_negotiate()
1478 vmci_trans(vsk)->qp_handle = handle; in vmci_transport_recv_connecting_client_negotiate()
1479 vmci_trans(vsk)->qpair = qpair; in vmci_transport_recv_connecting_client_negotiate()
1481 vmci_trans(vsk)->produce_size = vmci_trans(vsk)->consume_size = in vmci_transport_recv_connecting_client_negotiate()
1484 vmci_trans(vsk)->detach_sub_id = detach_sub_id; in vmci_transport_recv_connecting_client_negotiate()
1486 vmci_trans(vsk)->notify_ops->process_negotiate(sk); in vmci_transport_recv_connecting_client_negotiate()
1505 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_recv_connecting_client_invalid() local
1507 if (vsk->sent_request) { in vmci_transport_recv_connecting_client_invalid()
1508 vsk->sent_request = false; in vmci_transport_recv_connecting_client_invalid()
1509 vsk->ignore_connecting_rst = true; in vmci_transport_recv_connecting_client_invalid()
1511 err = vmci_transport_send_conn_request(sk, vsk->buffer_size); in vmci_transport_recv_connecting_client_invalid()
1525 struct vsock_sock *vsk; in vmci_transport_recv_connected() local
1539 vsk = vsock_sk(sk); in vmci_transport_recv_connected()
1541 vsk->peer_shutdown |= pkt->u.mode; in vmci_transport_recv_connected()
1547 vsk = vsock_sk(sk); in vmci_transport_recv_connected()
1558 vsk->peer_shutdown = SHUTDOWN_MASK; in vmci_transport_recv_connected()
1559 if (vsock_stream_has_data(vsk) <= 0) in vmci_transport_recv_connected()
1566 vsk = vsock_sk(sk); in vmci_transport_recv_connected()
1567 vmci_trans(vsk)->notify_ops->handle_notify_pkt( in vmci_transport_recv_connected()
1579 static int vmci_transport_socket_init(struct vsock_sock *vsk, in vmci_transport_socket_init() argument
1582 vsk->trans = kmalloc(sizeof(struct vmci_transport), GFP_KERNEL); in vmci_transport_socket_init()
1583 if (!vsk->trans) in vmci_transport_socket_init()
1586 vmci_trans(vsk)->dg_handle = VMCI_INVALID_HANDLE; in vmci_transport_socket_init()
1587 vmci_trans(vsk)->qp_handle = VMCI_INVALID_HANDLE; in vmci_transport_socket_init()
1588 vmci_trans(vsk)->qpair = NULL; in vmci_transport_socket_init()
1589 vmci_trans(vsk)->produce_size = vmci_trans(vsk)->consume_size = 0; in vmci_transport_socket_init()
1590 vmci_trans(vsk)->detach_sub_id = VMCI_INVALID_ID; in vmci_transport_socket_init()
1591 vmci_trans(vsk)->notify_ops = NULL; in vmci_transport_socket_init()
1592 INIT_LIST_HEAD(&vmci_trans(vsk)->elem); in vmci_transport_socket_init()
1593 vmci_trans(vsk)->sk = &vsk->sk; in vmci_transport_socket_init()
1594 spin_lock_init(&vmci_trans(vsk)->lock); in vmci_transport_socket_init()
1633 static void vmci_transport_destruct(struct vsock_sock *vsk) in vmci_transport_destruct() argument
1636 if (!vmci_trans(vsk)) in vmci_transport_destruct()
1642 spin_lock_bh(&vmci_trans(vsk)->lock); in vmci_transport_destruct()
1643 vmci_trans(vsk)->sk = NULL; in vmci_transport_destruct()
1644 spin_unlock_bh(&vmci_trans(vsk)->lock); in vmci_transport_destruct()
1646 if (vmci_trans(vsk)->notify_ops) in vmci_transport_destruct()
1647 vmci_trans(vsk)->notify_ops->socket_destruct(vsk); in vmci_transport_destruct()
1650 list_add(&vmci_trans(vsk)->elem, &vmci_transport_cleanup_list); in vmci_transport_destruct()
1654 vsk->trans = NULL; in vmci_transport_destruct()
1657 static void vmci_transport_release(struct vsock_sock *vsk) in vmci_transport_release() argument
1659 vsock_remove_sock(vsk); in vmci_transport_release()
1661 if (!vmci_handle_is_invalid(vmci_trans(vsk)->dg_handle)) { in vmci_transport_release()
1662 vmci_datagram_destroy_handle(vmci_trans(vsk)->dg_handle); in vmci_transport_release()
1663 vmci_trans(vsk)->dg_handle = VMCI_INVALID_HANDLE; in vmci_transport_release()
1667 static int vmci_transport_dgram_bind(struct vsock_sock *vsk, in vmci_transport_dgram_bind() argument
1688 &vsk->sk, in vmci_transport_dgram_bind()
1689 &vmci_trans(vsk)->dg_handle); in vmci_transport_dgram_bind()
1692 vsock_addr_init(&vsk->local_addr, addr->svm_cid, in vmci_transport_dgram_bind()
1693 vmci_trans(vsk)->dg_handle.resource); in vmci_transport_dgram_bind()
1699 struct vsock_sock *vsk, in vmci_transport_dgram_enqueue() argument
1710 if (!vmci_transport_allow_dgram(vsk, remote_addr->svm_cid)) in vmci_transport_dgram_enqueue()
1726 dg->src = vmci_make_handle(vsk->local_addr.svm_cid, in vmci_transport_dgram_enqueue()
1727 vsk->local_addr.svm_port); in vmci_transport_dgram_enqueue()
1738 static int vmci_transport_dgram_dequeue(struct vsock_sock *vsk, in vmci_transport_dgram_dequeue() argument
1755 skb = skb_recv_datagram(&vsk->sk, flags, noblock, &err); in vmci_transport_dgram_dequeue()
1790 skb_free_datagram(&vsk->sk, skb); in vmci_transport_dgram_dequeue()
1806 static int vmci_transport_connect(struct vsock_sock *vsk) in vmci_transport_connect() argument
1810 struct sock *sk = &vsk->sk; in vmci_transport_connect()
1814 err = vmci_transport_send_conn_request(sk, vsk->buffer_size); in vmci_transport_connect()
1822 err = vmci_transport_send_conn_request2(sk, vsk->buffer_size, in vmci_transport_connect()
1829 vsk->sent_request = true; in vmci_transport_connect()
1836 struct vsock_sock *vsk, in vmci_transport_stream_dequeue() argument
1842 return vmci_qpair_peekv(vmci_trans(vsk)->qpair, msg, len, 0); in vmci_transport_stream_dequeue()
1844 return vmci_qpair_dequev(vmci_trans(vsk)->qpair, msg, len, 0); in vmci_transport_stream_dequeue()
1848 struct vsock_sock *vsk, in vmci_transport_stream_enqueue() argument
1852 return vmci_qpair_enquev(vmci_trans(vsk)->qpair, msg, len, 0); in vmci_transport_stream_enqueue()
1855 static s64 vmci_transport_stream_has_data(struct vsock_sock *vsk) in vmci_transport_stream_has_data() argument
1857 return vmci_qpair_consume_buf_ready(vmci_trans(vsk)->qpair); in vmci_transport_stream_has_data()
1860 static s64 vmci_transport_stream_has_space(struct vsock_sock *vsk) in vmci_transport_stream_has_space() argument
1862 return vmci_qpair_produce_free_space(vmci_trans(vsk)->qpair); in vmci_transport_stream_has_space()
1865 static u64 vmci_transport_stream_rcvhiwat(struct vsock_sock *vsk) in vmci_transport_stream_rcvhiwat() argument
1867 return vmci_trans(vsk)->consume_size; in vmci_transport_stream_rcvhiwat()
1870 static bool vmci_transport_stream_is_active(struct vsock_sock *vsk) in vmci_transport_stream_is_active() argument
1872 return !vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle); in vmci_transport_stream_is_active()
1876 struct vsock_sock *vsk, in vmci_transport_notify_poll_in() argument
1880 return vmci_trans(vsk)->notify_ops->poll_in( in vmci_transport_notify_poll_in()
1881 &vsk->sk, target, data_ready_now); in vmci_transport_notify_poll_in()
1885 struct vsock_sock *vsk, in vmci_transport_notify_poll_out() argument
1889 return vmci_trans(vsk)->notify_ops->poll_out( in vmci_transport_notify_poll_out()
1890 &vsk->sk, target, space_available_now); in vmci_transport_notify_poll_out()
1894 struct vsock_sock *vsk, in vmci_transport_notify_recv_init() argument
1898 return vmci_trans(vsk)->notify_ops->recv_init( in vmci_transport_notify_recv_init()
1899 &vsk->sk, target, in vmci_transport_notify_recv_init()
1904 struct vsock_sock *vsk, in vmci_transport_notify_recv_pre_block() argument
1908 return vmci_trans(vsk)->notify_ops->recv_pre_block( in vmci_transport_notify_recv_pre_block()
1909 &vsk->sk, target, in vmci_transport_notify_recv_pre_block()
1914 struct vsock_sock *vsk, in vmci_transport_notify_recv_pre_dequeue() argument
1918 return vmci_trans(vsk)->notify_ops->recv_pre_dequeue( in vmci_transport_notify_recv_pre_dequeue()
1919 &vsk->sk, target, in vmci_transport_notify_recv_pre_dequeue()
1924 struct vsock_sock *vsk, in vmci_transport_notify_recv_post_dequeue() argument
1930 return vmci_trans(vsk)->notify_ops->recv_post_dequeue( in vmci_transport_notify_recv_post_dequeue()
1931 &vsk->sk, target, copied, data_read, in vmci_transport_notify_recv_post_dequeue()
1936 struct vsock_sock *vsk, in vmci_transport_notify_send_init() argument
1939 return vmci_trans(vsk)->notify_ops->send_init( in vmci_transport_notify_send_init()
1940 &vsk->sk, in vmci_transport_notify_send_init()
1945 struct vsock_sock *vsk, in vmci_transport_notify_send_pre_block() argument
1948 return vmci_trans(vsk)->notify_ops->send_pre_block( in vmci_transport_notify_send_pre_block()
1949 &vsk->sk, in vmci_transport_notify_send_pre_block()
1954 struct vsock_sock *vsk, in vmci_transport_notify_send_pre_enqueue() argument
1957 return vmci_trans(vsk)->notify_ops->send_pre_enqueue( in vmci_transport_notify_send_pre_enqueue()
1958 &vsk->sk, in vmci_transport_notify_send_pre_enqueue()
1963 struct vsock_sock *vsk, in vmci_transport_notify_send_post_enqueue() argument
1967 return vmci_trans(vsk)->notify_ops->send_post_enqueue( in vmci_transport_notify_send_post_enqueue()
1968 &vsk->sk, written, in vmci_transport_notify_send_post_enqueue()
1991 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_proto_to_notify_struct() local
1998 vmci_trans(vsk)->notify_ops = &vmci_transport_notify_pkt_ops; in vmci_transport_proto_to_notify_struct()
2004 vmci_trans(vsk)->notify_ops = in vmci_transport_proto_to_notify_struct()
2013 vmci_trans(vsk)->notify_ops->socket_init(sk); in vmci_transport_proto_to_notify_struct()
2061 static bool vmci_check_transport(struct vsock_sock *vsk) in vmci_check_transport() argument
2063 return vsk->transport == &vmci_transport; in vmci_check_transport()