Message ID | 20210413124642.3406320-1-arseny.krasnov@kaspersky.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | virtio/vsock: introduce SOCK_SEQPACKET support | expand |
On Tue, Apr 13, 2021 at 03:46:39PM +0300, Arseny Krasnov wrote: >This adds SEQPACKET ops for loopback transport and 'seqpacket_allow()' >callback. > >Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> >Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> >--- > net/vmw_vsock/vsock_loopback.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > >diff --git a/net/vmw_vsock/vsock_loopback.c b/net/vmw_vsock/vsock_loopback.c >index a45f7ffca8c5..d38ffdbecc84 100644 >--- a/net/vmw_vsock/vsock_loopback.c >+++ b/net/vmw_vsock/vsock_loopback.c >@@ -63,6 +63,8 @@ static int vsock_loopback_cancel_pkt(struct vsock_sock *vsk) > return 0; > } > >+static bool vsock_loopback_seqpacket_allow(void); >+ > static struct virtio_transport loopback_transport = { > .transport = { > .module = THIS_MODULE, >@@ -89,6 +91,10 @@ static struct virtio_transport loopback_transport = { > .stream_is_active = virtio_transport_stream_is_active, > .stream_allow = virtio_transport_stream_allow, > >+ .seqpacket_dequeue = virtio_transport_seqpacket_dequeue, >+ .seqpacket_enqueue = virtio_transport_seqpacket_enqueue, >+ .seqpacket_allow = vsock_loopback_seqpacket_allow, >+ > .notify_poll_in = virtio_transport_notify_poll_in, > .notify_poll_out = virtio_transport_notify_poll_out, > .notify_recv_init = virtio_transport_notify_recv_init, >@@ -103,8 +109,14 @@ static struct virtio_transport loopback_transport = { > }, > > .send_pkt = vsock_loopback_send_pkt, >+ .seqpacket_allow = true > }; > >+static bool vsock_loopback_seqpacket_allow(void) >+{ >+ return loopback_transport.seqpacket_allow; >+} here I think we could always return true, since we will remove `.seqpacket_allow` from struct virtio_transport. >+ > static void vsock_loopback_work(struct work_struct *work) > { > struct vsock_loopback *vsock = >-- >2.25.1 >
diff --git a/net/vmw_vsock/vsock_loopback.c b/net/vmw_vsock/vsock_loopback.c index a45f7ffca8c5..d38ffdbecc84 100644 --- a/net/vmw_vsock/vsock_loopback.c +++ b/net/vmw_vsock/vsock_loopback.c @@ -63,6 +63,8 @@ static int vsock_loopback_cancel_pkt(struct vsock_sock *vsk) return 0; } +static bool vsock_loopback_seqpacket_allow(void); + static struct virtio_transport loopback_transport = { .transport = { .module = THIS_MODULE, @@ -89,6 +91,10 @@ static struct virtio_transport loopback_transport = { .stream_is_active = virtio_transport_stream_is_active, .stream_allow = virtio_transport_stream_allow, + .seqpacket_dequeue = virtio_transport_seqpacket_dequeue, + .seqpacket_enqueue = virtio_transport_seqpacket_enqueue, + .seqpacket_allow = vsock_loopback_seqpacket_allow, + .notify_poll_in = virtio_transport_notify_poll_in, .notify_poll_out = virtio_transport_notify_poll_out, .notify_recv_init = virtio_transport_notify_recv_init, @@ -103,8 +109,14 @@ static struct virtio_transport loopback_transport = { }, .send_pkt = vsock_loopback_send_pkt, + .seqpacket_allow = true }; +static bool vsock_loopback_seqpacket_allow(void) +{ + return loopback_transport.seqpacket_allow; +} + static void vsock_loopback_work(struct work_struct *work) { struct vsock_loopback *vsock =