lkml.org 
[lkml]   [2023]   [Jun]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH RFC net-next v4 2/8] vsock: refactor transport lookup code
    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(-)

    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-10 02:59    [W:4.063 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site