Subject: Re: [PATCH net] vhost_net: do not report a used len larger than receive buffer size

From: "Michael S. Tsirkin" <[email-masked]>
Date: Wed, 12 Feb 2014 13:52:20 +0200

On Wed, Feb 12, 2014 at 01:57:46PM +0800, Jason Wang wrote:
> Currently, even if the packet were truncated by lower socket, we still
> report the packet size as the used len which may confuse guest
> driver. Fixes this by returning the size of guest receive buffer instead.
> 
> Fixes 3a4d5c94e959359ece6d6b55045c3f046677f55c
> (vhost_net: a kernel-level virtio server)
> 
> Cc: Michael S. Tsirkin <[email-masked]>
> Signed-off-by: Jason Wang <[email-masked]>

As discussed off-line:

NAK

and a fixed version will be sent.

> ---
>  drivers/vhost/net.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
> index 9a68409..06268a0 100644
> --- a/drivers/vhost/net.c
> +++ b/drivers/vhost/net.c
> @@ -525,7 +525,8 @@ static int get_rx_bufs(struct vhost_virtqueue *vq,
>  		++headcount;
>  		seg += in;
>  	}
> -	heads[headcount - 1].len += datalen;
> +	if (likely(datalen < 0))
> +		heads[headcount - 1].len += datalen;
>  	*iovcount = seg;
>  	if (unlikely(log))
>  		*log_num = nlogs;
> -- 
> 1.8.3.2