lkml.org 
[lkml]   [2023]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH RFC net-next v4 2/8] vsock: refactor transport lookup code
    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.eshleman@bytedance.com>
    >---
    > net/vmw_vsock/af_vsock.c | 25 ++++++++++++++++++-------
    > 1 file changed, 18 insertions(+), 7 deletions(-)

    Reviewed-by: Stefano Garzarella <sgarzare@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
    >

    \
     
     \ /
      Last update: 2023-06-22 17:00    [W:6.613 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site