From patchwork Wed Feb 12 05:57:46 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Wang X-Patchwork-Id: 3634321 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 7ABAD9F3B2 for ; Wed, 12 Feb 2014 05:58:30 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8F90A2015D for ; Wed, 12 Feb 2014 05:58:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BE1AB2014A for ; Wed, 12 Feb 2014 05:58:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750903AbaBLF5z (ORCPT ); Wed, 12 Feb 2014 00:57:55 -0500 Received: from mx1.redhat.com ([209.132.183.28]:31837 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750809AbaBLF5y (ORCPT ); Wed, 12 Feb 2014 00:57:54 -0500 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s1C5vppb023847 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 12 Feb 2014 00:57:51 -0500 Received: from jason-ThinkPad-T430s.nay.redhat.com ([10.66.4.201]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s1C5vmxJ010776; Wed, 12 Feb 2014 00:57:49 -0500 From: Jason Wang To: mst@redhat.com, kvm@vger.kernel.org, virtio-dev@lists.oasis-open.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Jason Wang Subject: [PATCH net] vhost_net: do not report a used len larger than receive buffer size Date: Wed, 12 Feb 2014 13:57:46 +0800 Message-Id: <1392184666-17616-1-git-send-email-jasowang@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 Signed-off-by: Jason Wang --- 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;