Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1079674ybl; Tue, 13 Aug 2019 07:06:48 -0700 (PDT) X-Google-Smtp-Source: APXvYqwh1xJwuNEvt85m5J8r4WgdQ5J4BDOcESrvcZjPT0AW782FqnZIeewpFFIqudPsU9cl+1rF X-Received: by 2002:a17:902:b285:: with SMTP id u5mr37300751plr.329.1565705208751; Tue, 13 Aug 2019 07:06:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565705208; cv=none; d=google.com; s=arc-20160816; b=fr8x105ZLDsZnDV95meVA0xqunzqMC3m3sQpYgb0Bpl84IDJvSTkc4HhBhct2M97kl aP0jAAy6xZAG+ib/MTkJYDWYnYOiq949UbrXgPUmSvNn/V6Y1HpDYjdB+L5jGoPnZeVQ 0JrQ7XE5H2+FpZPL8iJ9GfO7QzPshps1iB5slytnyB1H7r33wLpTF7SAcoECw96zKbBj 0K8JoTYQuWfXBERNduYm/7wCgDtMOWIUm2c6+XV6+meaaXnPVQHkSDyLqmw2X74GNz/D XNhq9wnEzOMg+pNusDiPtt1Q1AaurvOkKyQdg493RZniOrk3nt+BbqNGDIAXBAve8ncv ivUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Epzvhn0QUqbGiv5HZqB4HORMK4wspbVK6YbaOUHG8o8=; b=HkTSsQAHl13Z3zl0iajd7TtX0KtX/41zlDkNh/kFBeEKAy6DJOXfvtp8f2MJ/NBYbg TEeT57Tfp6sVhsGYPQslo1VW+fmiWmglJD6p729yjf2FmmulWuMBx4cB+F5meV6fuHo2 0Tnj6mp7JaFUBbNGoc+XN/hEyhzmM+edUkgSfeeBpIhLl4oHhuQN4G/cx7BfbBmdEzbj 3wU0h6nV/CvmWo3bDrIY8fbE0cZDckRCaiMHBcwev0q5OxqqqASjoWm6e3/hoCAGrJed htJ2Ep5cNj3bfg0Rgf549hmVLinkMnsbrp73mpGTJvuERlYD67IYPaJ3Tk2Khbovfmk/ DgGg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v11si11515305plg.31.2019.08.13.07.06.31; Tue, 13 Aug 2019 07:06:48 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729499AbfHMOFk (ORCPT + 99 others); Tue, 13 Aug 2019 10:05:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:61652 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729387AbfHMOFj (ORCPT ); Tue, 13 Aug 2019 10:05:39 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1A965308FC22; Tue, 13 Aug 2019 14:05:39 +0000 (UTC) Received: from dhcp201-121.englab.pnq.redhat.com (unknown [10.65.16.3]) by smtp.corp.redhat.com (Postfix) with ESMTP id 799926092F; Tue, 13 Aug 2019 14:05:36 +0000 (UTC) From: Pankaj Gupta To: mst@redhat.com, amit@kernel.org Cc: virtualization@lists.linux-foundation.org, arnd@arndb.de, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, jasowang@redhat.com, pagupta@redhat.com Subject: [PATCH v4 1/2] virtio: decrement avail idx with buffer detach for packed ring Date: Tue, 13 Aug 2019 19:35:28 +0530 Message-Id: <20190813140529.12939-2-pagupta@redhat.com> In-Reply-To: <20190813140529.12939-1-pagupta@redhat.com> References: <20190813140529.12939-1-pagupta@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Tue, 13 Aug 2019 14:05:39 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch decrements 'next_avail_idx' count when detaching a buffer from vq for packed ring code. Split ring code already does this in virtqueue_detach_unused_buf_split function. This updates the 'next_avail_idx' to the previous correct index after an unused buffer is detatched from the vq. Acked-by: Jason Wang Signed-off-by: Pankaj Gupta --- drivers/virtio/virtio_ring.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index c8be1c4f5b55..7c69181113e2 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -1537,6 +1537,12 @@ static void *virtqueue_detach_unused_buf_packed(struct virtqueue *_vq) /* detach_buf clears data, so grab it now. */ buf = vq->packed.desc_state[i].data; detach_buf_packed(vq, i, NULL); + vq->packed.next_avail_idx--; + if (vq->packed.next_avail_idx < 0) { + vq->packed.next_avail_idx = vq->packed.vring.num - 1; + vq->packed.avail_wrap_counter ^= 1; + } + END_USE(vq); return buf; } -- 2.20.1