Lines Matching full:transport
142 /* Transport used for host->guest communication */
144 /* Transport used for guest->host communication */
146 /* Transport used for DGRAM communication */
148 /* Transport used for local communication */
340 /* Transport reassignment must not remove the binding. */ in vsock_remove_sock()
348 void vsock_for_each_connected_socket(struct vsock_transport *transport, in vsock_for_each_connected_socket() argument
359 if (vsk->transport != transport) in vsock_for_each_connected_socket()
425 if (!vsk->transport) in vsock_deassign_transport()
428 vsk->transport->destruct(vsk); in vsock_deassign_transport()
429 module_put(vsk->transport->module); in vsock_deassign_transport()
430 vsk->transport = NULL; in vsock_deassign_transport()
433 /* Assign a transport to a socket and call the .init transport callback.
438 * The vsk->remote_addr is used to decide which transport to use:
440 * g2h is not loaded, will use local transport;
442 * includes VMADDR_FLAG_TO_HOST flag value, will use guest->host transport;
443 * - remote CID > VMADDR_CID_HOST will use host->guest transport;
485 if (vsk->transport) { in vsock_assign_transport()
486 if (vsk->transport == new_transport) in vsock_assign_transport()
489 /* transport->release() must be called with sock lock acquired. in vsock_assign_transport()
493 * any transport. in vsock_assign_transport()
495 vsk->transport->release(vsk); in vsock_assign_transport()
498 /* transport's release() and destruct() can touch some socket in vsock_assign_transport()
499 * state, since we are reassigning the socket to a new transport in vsock_assign_transport()
508 /* We increase the module refcnt to prevent the transport unloading in vsock_assign_transport()
528 vsk->transport = new_transport; in vsock_assign_transport()
587 if (!vsk->transport) in vsock_send_shutdown()
590 return vsk->transport->shutdown(vsk, mode); in vsock_send_shutdown()
700 return vsk->transport->dgram_bind(vsk, addr); in __vsock_bind_dgram()
828 * can be removed from the bound_table. Unlike transport reassignment in __vsock_release()
830 * being called from the transport release() callback. in __vsock_release()
834 if (vsk->transport) in __vsock_release()
835 vsk->transport->release(vsk); in __vsock_release()
892 if (WARN_ON(!vsk->transport)) in vsock_stream_has_data()
895 return vsk->transport->stream_has_data(vsk); in vsock_stream_has_data()
903 if (WARN_ON(!vsk->transport)) in vsock_connectible_has_data()
907 return vsk->transport->seqpacket_has_data(vsk); in vsock_connectible_has_data()
915 if (WARN_ON(!vsk->transport)) in vsock_stream_has_space()
918 return vsk->transport->stream_has_space(vsk); in vsock_stream_has_space()
1115 const struct vsock_transport *transport; in vsock_poll() local
1119 transport = vsk->transport; in vsock_poll()
1129 if (transport && transport->stream_is_active(vsk) && in vsock_poll()
1133 int ret = transport->notify_poll_in( in vsock_poll()
1154 if (transport && sk->sk_state == TCP_ESTABLISHED) { in vsock_poll()
1157 int ret = transport->notify_poll_out( in vsock_poll()
1192 if (WARN_ON_ONCE(!vsk->transport)) in vsock_read_skb()
1195 return vsk->transport->read_skb(vsk, read_actor); in vsock_read_skb()
1205 const struct vsock_transport *transport; in vsock_dgram_sendmsg() local
1217 transport = vsk->transport; in vsock_dgram_sendmsg()
1235 remote_addr->svm_cid = transport->get_local_cid(); in vsock_dgram_sendmsg()
1245 remote_addr->svm_cid = transport->get_local_cid(); in vsock_dgram_sendmsg()
1259 if (!transport->dgram_allow(remote_addr->svm_cid, in vsock_dgram_sendmsg()
1265 err = transport->dgram_enqueue(vsk, remote_addr, msg, len); in vsock_dgram_sendmsg()
1300 if (!vsk->transport->dgram_allow(remote_addr->svm_cid, in vsock_dgram_connect()
1330 return vsk->transport->dgram_dequeue(vsk, msg, len, flags); in __vsock_dgram_recvmsg()
1362 if (!vsk->transport || !vsk->transport->unsent_bytes) { in vsock_do_ioctl()
1372 n_bytes = vsk->transport->unsent_bytes(vsk); in vsock_do_ioctl()
1421 const struct vsock_transport *transport = vsk->transport; in vsock_transport_cancel_pkt() local
1423 if (!transport || !transport->cancel_pkt) in vsock_transport_cancel_pkt()
1426 return transport->cancel_pkt(vsk); in vsock_transport_cancel_pkt()
1457 const struct vsock_transport *transport; in vsock_connect() local
1502 transport = vsk->transport; in vsock_connect()
1507 if (!transport || in vsock_connect()
1508 !transport->stream_allow(remote_addr->svm_cid, in vsock_connect()
1514 if (vsock_msgzerocopy_allow(transport)) { in vsock_connect()
1518 * when transport was unknown, check that this in vsock_connect()
1531 err = transport->connect(vsk); in vsock_connect()
1688 if (vsock_msgzerocopy_allow(vconnected->transport)) in vsock_accept()
1740 const struct vsock_transport *transport, in vsock_update_buffer_size() argument
1750 transport && transport->notify_buffer_size) in vsock_update_buffer_size()
1751 transport->notify_buffer_size(vsk, &val); in vsock_update_buffer_size()
1765 const struct vsock_transport *transport; in vsock_connectible_setsockopt() local
1789 transport = vsk->transport; in vsock_connectible_setsockopt()
1809 if (transport && !vsock_msgzerocopy_allow(transport)) { in vsock_connectible_setsockopt()
1821 vsock_update_buffer_size(vsk, transport, val); in vsock_connectible_setsockopt()
1827 vsock_update_buffer_size(vsk, transport, vsk->buffer_size); in vsock_connectible_setsockopt()
1833 vsock_update_buffer_size(vsk, transport, vsk->buffer_size); in vsock_connectible_setsockopt()
1937 const struct vsock_transport *transport; in vsock_connectible_sendmsg() local
1954 transport = vsk->transport; in vsock_connectible_sendmsg()
1971 if (!transport || sk->sk_state != TCP_ESTABLISHED || in vsock_connectible_sendmsg()
1983 !vsock_msgzerocopy_allow(transport)) { in vsock_connectible_sendmsg()
1991 err = transport->notify_send_init(vsk, &send_data); in vsock_connectible_sendmsg()
2011 err = transport->notify_send_pre_block(vsk, &send_data); in vsock_connectible_sendmsg()
2045 err = transport->notify_send_pre_enqueue(vsk, &send_data); in vsock_connectible_sendmsg()
2056 written = transport->seqpacket_enqueue(vsk, in vsock_connectible_sendmsg()
2059 written = transport->stream_enqueue(vsk, in vsock_connectible_sendmsg()
2070 err = transport->notify_send_post_enqueue( in vsock_connectible_sendmsg()
2100 const struct vsock_transport *transport; in vsock_connectible_wait_data() local
2107 transport = vsk->transport; in vsock_connectible_wait_data()
2128 err = transport->notify_recv_pre_block(vsk, target, recv_data); in vsock_connectible_wait_data()
2151 /* Internal transport error when checking for available in vsock_connectible_wait_data()
2165 const struct vsock_transport *transport; in __vsock_stream_recvmsg() local
2175 transport = vsk->transport; in __vsock_stream_recvmsg()
2184 if (target >= transport->stream_rcvhiwat(vsk)) { in __vsock_stream_recvmsg()
2191 err = transport->notify_recv_init(vsk, target, &recv_data); in __vsock_stream_recvmsg()
2204 err = transport->notify_recv_pre_dequeue(vsk, target, in __vsock_stream_recvmsg()
2209 read = transport->stream_dequeue(vsk, msg, len - copied, flags); in __vsock_stream_recvmsg()
2217 err = transport->notify_recv_post_dequeue(vsk, target, read, in __vsock_stream_recvmsg()
2243 const struct vsock_transport *transport; in __vsock_seqpacket_recvmsg() local
2251 transport = vsk->transport; in __vsock_seqpacket_recvmsg()
2259 msg_len = transport->seqpacket_dequeue(vsk, msg, flags); in __vsock_seqpacket_recvmsg()
2296 const struct vsock_transport *transport; in __vsock_connectible_recvmsg() local
2309 transport = vsk->transport; in __vsock_connectible_recvmsg()
2311 if (!transport || sk->sk_state != TCP_ESTABLISHED) { in __vsock_connectible_recvmsg()
2376 const struct vsock_transport *transport; in vsock_set_rcvlowat() local
2384 transport = vsk->transport; in vsock_set_rcvlowat()
2386 if (transport && transport->notify_set_rcvlowat) { in vsock_set_rcvlowat()
2389 err = transport->notify_set_rcvlowat(vsk, val); in vsock_set_rcvlowat()
2606 return vsk->transport; in vsock_core_get_transport()