On Sat, Jun 10, 2023 at 12:58:29AM +0000, Bobby Eshleman wrote:
Introduce new reusable function vsock_connectible_lookup_transport()
that performs the transport lookup logic.

No functional change intended.

Signed-off-by: Bobby Eshleman <bobby.eshle...@bytedance.com>
---
net/vmw_vsock/af_vsock.c | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)

Reviewed-by: Stefano Garzarella <sgarz...@redhat.com>


diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
index ffb4dd8b6ea7..74358f0b47fa 100644
--- a/net/vmw_vsock/af_vsock.c
+++ b/net/vmw_vsock/af_vsock.c
@@ -422,6 +422,22 @@ static void vsock_deassign_transport(struct vsock_sock 
*vsk)
        vsk->transport = NULL;
}

+static const struct vsock_transport *
+vsock_connectible_lookup_transport(unsigned int cid, __u8 flags)
+{
+       const struct vsock_transport *transport;
+
+       if (vsock_use_local_transport(cid))
+               transport = transport_local;
+       else if (cid <= VMADDR_CID_HOST || !transport_h2g ||
+                (flags & VMADDR_FLAG_TO_HOST))
+               transport = transport_g2h;
+       else
+               transport = transport_h2g;
+
+       return transport;
+}
+
/* Assign a transport to a socket and call the .init transport callback.
 *
 * Note: for connection oriented socket this must be called when 
vsk->remote_addr
@@ -462,13 +478,8 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct 
vsock_sock *psk)
                break;
        case SOCK_STREAM:
        case SOCK_SEQPACKET:
-               if (vsock_use_local_transport(remote_cid))
-                       new_transport = transport_local;
-               else if (remote_cid <= VMADDR_CID_HOST || !transport_h2g ||
-                        (remote_flags & VMADDR_FLAG_TO_HOST))
-                       new_transport = transport_g2h;
-               else
-                       new_transport = transport_h2g;
+               new_transport = vsock_connectible_lookup_transport(remote_cid,
+                                                                  
remote_flags);
                break;
        default:
                return -ESOCKTNOSUPPORT;

--
2.30.2


_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to