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

From: Michael S. Tsirkin
Date: Wed Feb 12 2014 - 06:47:36 EST


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 <mst@xxxxxxxxxx>
> Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>

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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/