On Tue, Nov 19, 2019 at 12:01:20PM +0100, Stefano Garzarella wrote: > @@ -420,9 +436,10 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk) > new_transport = transport_dgram; > break; > case SOCK_STREAM: > - if (remote_cid <= VMADDR_CID_HOST || > - (transport_g2h && > - remote_cid == transport_g2h->get_local_cid())) > + if (vsock_use_local_transport(remote_cid)) > + new_transport = transport_local; > + else if (remote_cid == VMADDR_CID_HOST || > + remote_cid == VMADDR_CID_HYPERVISOR) > new_transport = transport_g2h; > else > new_transport = transport_h2g; We used to send VMADDR_CID_RESERVED to the host. Now we send VMADDR_CID_RESERVED (LOCAL) to the guest when there is no transport_local loaded? If this is correct, is there a justification for this change? It seems safest to retain existing behavior.