Stefano Garzarella
2023-Jun-22 14:57 UTC
[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 at bytedance.com> >--- > net/vmw_vsock/af_vsock.c | 25 ++++++++++++++++++------- > 1 file changed, 18 insertions(+), 7 deletions(-)Reviewed-by: Stefano Garzarella <sgarzare at 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 >