lkml.org 
[lkml]   [2023]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC PATCH v2 2/4] virtio/vsock: remove all data from sk_buff
    On Sun, Mar 05, 2023 at 11:07:37PM +0300, Arseniy Krasnov wrote:
    >In case of SOCK_SEQPACKET all sk_buffs are used once - after read some
    >data from it, it will be removed, so user will never read rest of the
    >data. Thus we need to update credit parameters of the socket like whole
    >sk_buff is read - so call 'skb_pull()' for the whole buffer.
    >
    >Fixes: 71dc9ec9ac7d ("virtio/vsock: replace virtio_vsock_pkt with sk_buff")
    >Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru>
    >---
    > net/vmw_vsock/virtio_transport_common.c | 2 +-
    > 1 file changed, 1 insertion(+), 1 deletion(-)

    Maybe we could avoid this patch if we directly use pkt_len as I
    suggested in the previous patch.

    Thanks,
    Stefano

    >
    >diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
    >index 2e2a773df5c1..30b0539990ba 100644
    >--- a/net/vmw_vsock/virtio_transport_common.c
    >+++ b/net/vmw_vsock/virtio_transport_common.c
    >@@ -466,7 +466,6 @@ static int virtio_transport_seqpacket_do_dequeue(struct vsock_sock *vsk,
    > dequeued_len = err;
    > } else {
    > user_buf_len -= bytes_to_copy;
    >- skb_pull(skb, bytes_to_copy);
    > }
    >
    > spin_lock_bh(&vvs->rx_lock);
    >@@ -484,6 +483,7 @@ static int virtio_transport_seqpacket_do_dequeue(struct vsock_sock *vsk,
    > msg->msg_flags |= MSG_EOR;
    > }
    >
    >+ skb_pull(skb, skb->len);
    > virtio_transport_dec_rx_pkt(vvs, skb);
    > kfree_skb(skb);
    > }
    >--
    >2.25.1
    >

    \
     
     \ /
      Last update: 2023-03-27 00:45    [W:4.278 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site