Lines Matching full:transport
141 /* Transport used for host->guest communication */
143 /* Transport used for guest->host communication */
145 /* Transport used for DGRAM communication */
147 /* Transport used for local communication */
339 /* Transport reassignment must not remove the binding. */ in vsock_remove_sock()
347 void vsock_for_each_connected_socket(struct vsock_transport *transport, in vsock_for_each_connected_socket() argument
358 if (vsk->transport != transport) in vsock_for_each_connected_socket()
426 if (!vsk->transport) in vsock_deassign_transport()
429 vsk->transport->destruct(vsk); in vsock_deassign_transport()
430 module_put(vsk->transport->module); in vsock_deassign_transport()
431 vsk->transport = NULL; in vsock_deassign_transport()
434 /* Assign a transport to a socket and call the .init transport callback.
439 * The vsk->remote_addr is used to decide which transport to use:
441 * g2h is not loaded, will use local transport;
443 * includes VMADDR_FLAG_TO_HOST flag value, will use guest->host transport;
444 * - remote CID > VMADDR_CID_HOST will use host->guest transport;
489 if (vsk->transport) { in vsock_assign_transport()
490 if (vsk->transport == new_transport) { in vsock_assign_transport()
495 /* transport->release() must be called with sock lock acquired. in vsock_assign_transport()
499 * any transport. in vsock_assign_transport()
501 vsk->transport->release(vsk); in vsock_assign_transport()
504 /* transport's release() and destruct() can touch some socket in vsock_assign_transport()
505 * state, since we are reassigning the socket to a new transport in vsock_assign_transport()
514 /* We increase the module refcnt to prevent the transport unloading in vsock_assign_transport()
523 * Whichever transport `new_transport` points at, it won't go away until in vsock_assign_transport()
542 vsk->transport = new_transport; in vsock_assign_transport()
553 * Otherwise we may race with module removal. Do not use on `vsk->transport`.
555 static u32 vsock_registered_transport_cid(const struct vsock_transport **transport) in vsock_registered_transport_cid() argument
560 if (*transport) in vsock_registered_transport_cid()
561 cid = (*transport)->get_local_cid(); in vsock_registered_transport_cid()
620 if (!vsk->transport) in vsock_send_shutdown()
623 return vsk->transport->shutdown(vsk, mode); in vsock_send_shutdown()
733 return vsk->transport->dgram_bind(vsk, addr); in __vsock_bind_dgram()
861 * can be removed from the bound_table. Unlike transport reassignment in __vsock_release()
863 * being called from the transport release() callback. in __vsock_release()
867 if (vsk->transport) in __vsock_release()
868 vsk->transport->release(vsk); in __vsock_release()
922 if (WARN_ON(!vsk->transport)) in vsock_stream_has_data()
925 return vsk->transport->stream_has_data(vsk); in vsock_stream_has_data()
933 if (WARN_ON(!vsk->transport)) in vsock_connectible_has_data()
937 return vsk->transport->seqpacket_has_data(vsk); in vsock_connectible_has_data()
945 if (WARN_ON(!vsk->transport)) in vsock_stream_has_space()
948 return vsk->transport->stream_has_space(vsk); in vsock_stream_has_space()
1145 const struct vsock_transport *transport; in vsock_poll() local
1149 transport = vsk->transport; in vsock_poll()
1159 if (transport && transport->stream_is_active(vsk) && in vsock_poll()
1163 int ret = transport->notify_poll_in( in vsock_poll()
1184 if (transport && sk->sk_state == TCP_ESTABLISHED) { in vsock_poll()
1187 int ret = transport->notify_poll_out( in vsock_poll()
1222 if (WARN_ON_ONCE(!vsk->transport)) in vsock_read_skb()
1225 return vsk->transport->read_skb(vsk, read_actor); in vsock_read_skb()
1235 const struct vsock_transport *transport; in vsock_dgram_sendmsg() local
1247 transport = vsk->transport; in vsock_dgram_sendmsg()
1265 remote_addr->svm_cid = transport->get_local_cid(); in vsock_dgram_sendmsg()
1275 remote_addr->svm_cid = transport->get_local_cid(); in vsock_dgram_sendmsg()
1289 if (!transport->dgram_allow(remote_addr->svm_cid, in vsock_dgram_sendmsg()
1295 err = transport->dgram_enqueue(vsk, remote_addr, msg, len); in vsock_dgram_sendmsg()
1330 if (!vsk->transport->dgram_allow(remote_addr->svm_cid, in vsock_dgram_connect()
1360 return vsk->transport->dgram_dequeue(vsk, msg, len, flags); in __vsock_dgram_recvmsg()
1400 const struct vsock_transport *transport = vsk->transport; in vsock_transport_cancel_pkt() local
1402 if (!transport || !transport->cancel_pkt) in vsock_transport_cancel_pkt()
1405 return transport->cancel_pkt(vsk); in vsock_transport_cancel_pkt()
1436 const struct vsock_transport *transport; in vsock_connect() local
1481 transport = vsk->transport; in vsock_connect()
1486 if (!transport || in vsock_connect()
1487 !transport->stream_allow(remote_addr->svm_cid, in vsock_connect()
1499 err = transport->connect(vsk); in vsock_connect()
1705 const struct vsock_transport *transport, in vsock_update_buffer_size() argument
1715 transport && transport->notify_buffer_size) in vsock_update_buffer_size()
1716 transport->notify_buffer_size(vsk, &val); in vsock_update_buffer_size()
1730 const struct vsock_transport *transport; in vsock_connectible_setsockopt() local
1754 transport = vsk->transport; in vsock_connectible_setsockopt()
1759 vsock_update_buffer_size(vsk, transport, val); in vsock_connectible_setsockopt()
1765 vsock_update_buffer_size(vsk, transport, vsk->buffer_size); in vsock_connectible_setsockopt()
1771 vsock_update_buffer_size(vsk, transport, vsk->buffer_size); in vsock_connectible_setsockopt()
1875 const struct vsock_transport *transport; in vsock_connectible_sendmsg() local
1892 transport = vsk->transport; in vsock_connectible_sendmsg()
1909 if (!transport || sk->sk_state != TCP_ESTABLISHED || in vsock_connectible_sendmsg()
1923 err = transport->notify_send_init(vsk, &send_data); in vsock_connectible_sendmsg()
1943 err = transport->notify_send_pre_block(vsk, &send_data); in vsock_connectible_sendmsg()
1977 err = transport->notify_send_pre_enqueue(vsk, &send_data); in vsock_connectible_sendmsg()
1988 written = transport->seqpacket_enqueue(vsk, in vsock_connectible_sendmsg()
1991 written = transport->stream_enqueue(vsk, in vsock_connectible_sendmsg()
2002 err = transport->notify_send_post_enqueue( in vsock_connectible_sendmsg()
2029 const struct vsock_transport *transport; in vsock_connectible_wait_data() local
2036 transport = vsk->transport; in vsock_connectible_wait_data()
2057 err = transport->notify_recv_pre_block(vsk, target, recv_data); in vsock_connectible_wait_data()
2080 /* Internal transport error when checking for available in vsock_connectible_wait_data()
2094 const struct vsock_transport *transport; in __vsock_stream_recvmsg() local
2104 transport = vsk->transport; in __vsock_stream_recvmsg()
2113 if (target >= transport->stream_rcvhiwat(vsk)) { in __vsock_stream_recvmsg()
2120 err = transport->notify_recv_init(vsk, target, &recv_data); in __vsock_stream_recvmsg()
2133 err = transport->notify_recv_pre_dequeue(vsk, target, in __vsock_stream_recvmsg()
2138 read = transport->stream_dequeue(vsk, msg, len - copied, flags); in __vsock_stream_recvmsg()
2146 err = transport->notify_recv_post_dequeue(vsk, target, read, in __vsock_stream_recvmsg()
2172 const struct vsock_transport *transport; in __vsock_seqpacket_recvmsg() local
2180 transport = vsk->transport; in __vsock_seqpacket_recvmsg()
2188 msg_len = transport->seqpacket_dequeue(vsk, msg, flags); in __vsock_seqpacket_recvmsg()
2225 const struct vsock_transport *transport; in __vsock_connectible_recvmsg() local
2238 transport = vsk->transport; in __vsock_connectible_recvmsg()
2240 if (!transport || sk->sk_state != TCP_ESTABLISHED) { in __vsock_connectible_recvmsg()
2305 const struct vsock_transport *transport; in vsock_set_rcvlowat() local
2313 transport = vsk->transport; in vsock_set_rcvlowat()
2315 if (transport && transport->notify_set_rcvlowat) { in vsock_set_rcvlowat()
2318 err = transport->notify_set_rcvlowat(vsk, val); in vsock_set_rcvlowat()
2529 return vsk->transport; in vsock_core_get_transport()