From nobody Mon Apr 27 01:52:50 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A82B8C43334 for ; Mon, 20 Jun 2022 08:07:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238806AbiFTIHQ (ORCPT ); Mon, 20 Jun 2022 04:07:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232762AbiFTIHP (ORCPT ); Mon, 20 Jun 2022 04:07:15 -0400 Received: from unicom146.biz-email.net (unicom146.biz-email.net [210.51.26.146]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD92D213 for ; Mon, 20 Jun 2022 01:07:08 -0700 (PDT) Received: from ([60.208.111.195]) by unicom146.biz-email.net ((D)) with ASMTP (SSL) id PGC00101; Mon, 20 Jun 2022 16:07:01 +0800 Received: from localhost.localdomain (10.200.104.82) by jtjnmail201612.home.langchao.com (10.100.2.12) with Microsoft SMTP Server id 15.1.2308.27; Mon, 20 Jun 2022 16:07:02 +0800 From: Deming Wang To: , CC: , , Deming Wang Subject: [PATCH] virtio_ring: Optimize duplicate judgment codes for virtqueue_add_split Date: Mon, 20 Jun 2022 04:06:56 -0400 Message-ID: <20220620080656.1559-1-wangdeming@inspur.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.200.104.82] tUid: 20226201607012893fc8a5ca814948df10f459f10d27a X-Abuse-Reports-To: service@corp-email.com Abuse-Reports-To: service@corp-email.com X-Complaints-To: service@corp-email.com X-Report-Abuse-To: service@corp-email.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" We combine repeated judgments about indirect in one place Signed-off-by: Deming Wang --- drivers/virtio/virtio_ring.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 13a7348cedff..331fa3cf5be7 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -582,23 +582,19 @@ static inline int virtqueue_add_split(struct virtqueu= e *_vq, total_sg * sizeof(struct vring_desc), VRING_DESC_F_INDIRECT, false); + vq->free_head =3D vq->split.desc_extra[head].next; + vq->split.desc_state[head].indir_desc =3D desc; + } else { + /* Update free pointer */ + vq->free_head =3D i; + vq->split.desc_state[head].indir_desc =3D ctx; } =20 /* We're using some buffers from the free list. */ vq->vq.num_free -=3D descs_used; =20 - /* Update free pointer */ - if (indirect) - vq->free_head =3D vq->split.desc_extra[head].next; - else - vq->free_head =3D i; - /* Store token and indirect buffer state. */ vq->split.desc_state[head].data =3D data; - if (indirect) - vq->split.desc_state[head].indir_desc =3D desc; - else - vq->split.desc_state[head].indir_desc =3D ctx; =20 /* Put entry in available array (but don't update avail->idx until they * do sync). */ --=20 2.27.0