get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2174154/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2174154,
    "url": "http://patchwork.ozlabs.org/api/patches/2174154/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20251215075747.2367-1-wafer@jaguarmicro.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20251215075747.2367-1-wafer@jaguarmicro.com>",
    "list_archive_url": null,
    "date": "2025-12-15T07:57:47",
    "name": "[v2,3/4] vhost: SVQ get the indirect descriptors from used ring",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "4e61ab4dd1acdd59f3628fa20452f86262178f13",
    "submitter": {
        "id": 87629,
        "url": "http://patchwork.ozlabs.org/api/people/87629/?format=api",
        "name": "Wafer",
        "email": "wafer@jaguarmicro.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20251215075747.2367-1-wafer@jaguarmicro.com/mbox/",
    "series": [
        {
            "id": 485358,
            "url": "http://patchwork.ozlabs.org/api/series/485358/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=485358",
            "date": "2025-12-15T07:57:13",
            "name": "[v2,1/4] vhost: add data structure of virtio indirect descriptors in SVQ",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/485358/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2174154/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2174154/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=jaguarmicro.com header.i=@jaguarmicro.com\n header.a=rsa-sha256 header.s=selector2 header.b=Hqj7C8nD;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=jaguarmicro.com;"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dVCBR1Yk2z1xyL\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 15 Dec 2025 18:59:11 +1100 (AEDT)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vV3To-0007rC-4s; Mon, 15 Dec 2025 02:58:52 -0500",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <wafer@jaguarmicro.com>)\n id 1vV3Tk-0007qs-A6\n for qemu-devel@nongnu.org; Mon, 15 Dec 2025 02:58:48 -0500",
            "from mail-japanwestazlp170120003.outbound.protection.outlook.com\n ([2a01:111:f403:c406::3] helo=OS8PR02CU002.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <wafer@jaguarmicro.com>)\n id 1vV3Ti-0004DR-Gg\n for qemu-devel@nongnu.org; Mon, 15 Dec 2025 02:58:48 -0500",
            "from PUZPR06MB4713.apcprd06.prod.outlook.com (2603:1096:301:b4::10)\n by OSNPR06MB8228.apcprd06.prod.outlook.com (2603:1096:604:45e::6)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Mon, 15 Dec\n 2025 07:58:39 +0000",
            "from PUZPR06MB4713.apcprd06.prod.outlook.com\n ([fe80::1b36:28b0:4e5:de66]) by PUZPR06MB4713.apcprd06.prod.outlook.com\n ([fe80::1b36:28b0:4e5:de66%6]) with mapi id 15.20.9412.011; Mon, 15 Dec 2025\n 07:58:39 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Af46oyGBJyAR+PHi9S7ya/LF1WIt+PJbBuXQThdwAqNoPtgfZ2Y90XIddmEkSsSFVgAE2xUlMtiMPWkYCsyeDx/SRvGxhMouGnLzRhrPkBGm0qqqdGdDfVF+xIdNaWC1ryzIM/zQMNScvLjD/3vNE2bmQG206GQLq1p5V4wNed+DQazXR51ZBxoCnb43vjPrEEqgYzzLo579zOBh1RLPuNQ0wKEXYMqCJs/m4sLy3hhVngZ0erugdamDdZG1Jfk4XFHPDcG1PyGQwgNE2T1u8NsM5jg+36BXKKGAcYudho68nR2Pr5B0wveHkLCDZ11jF8mqIFHRqhUnIsvbckqSyg==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=ZqRtpSyWKiPcGehPjO7vHUtms4XA3YgPXOG0le3ZuqE=;\n b=kpjMba+nB8fcIAEsf1DsN46K6fGjbw36t4IPLP/+UVYr06myU0zx8cygBWEet+l0N+GfUVKDRUSvK51EdXn8M+xdj4ZbiZ5pUnQ1k6GIagfnvKOGq6av+Wx7QvbA+FSKJJCTy9cylWKn+9paMJZ9un26L+UWjlQFZINtgF/rlcmnktGQ/Baqa6/jvD1L91X8/eiexi3H1WMO4+WJWsm+xc1DYsDF7WFBzPkcqUzytvb2aDQxHSg3eiUbr8NRodSZaay0n1OMeME0KiwT/FUzC1ya8U+2JWjuJ3EpkkMzyfV/I7mp1V2YM4uvd9NZS70VCjxjtW9UUng+ab4qWgdR5Q==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=jaguarmicro.com; dmarc=pass action=none\n header.from=jaguarmicro.com; dkim=pass header.d=jaguarmicro.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=jaguarmicro.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=ZqRtpSyWKiPcGehPjO7vHUtms4XA3YgPXOG0le3ZuqE=;\n b=Hqj7C8nDR7lqRUtXGSX2PJm3lDm6/708pRUBNEjlZwZ7vI+2Tsfho1BUZUcJIXUB7I8SgJX2KHcSBRXQWwlg5OwP5gsOdW/+DpTkzqIEqvr6yzHuqGUO+YwTK/VDgExnh1/9bKs6mHs3BD0oqHH03NjqpxK4pQIUom6mHdta6vwQsPfOKv1bua98Jdc47GTiRu+AF/uACd3E38vUZiZUzpvAwXWcl4JVhjQHuWjstcYJ7Fz0sJtkKAFZcliS4WUpyrVsXQnSqIKnmDI65tGXio4x3xE/mVNZNitDdF9OK0QnAm43xCVacgG5TtB3qGj8Qm3RK7nvihFvc8QdZnN1SA==",
        "From": "Wafer Xie <wafer@jaguarmicro.com>",
        "To": "mst@redhat.com, eperezma@redhat.com, jasowang@redhat.com,\n qemu-devel@nongnu.org",
        "Cc": "leiyang@redhat.com, sgarzare@redhat.com, angus.chen@jaguarmicro.com,\n wafer@jaguarmicro.com",
        "Subject": "[PATCH v2 3/4] vhost: SVQ get the indirect descriptors from used ring",
        "Date": "Mon, 15 Dec 2025 15:57:47 +0800",
        "Message-Id": "<20251215075747.2367-1-wafer@jaguarmicro.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "KU0P306CA0026.MYSP306.PROD.OUTLOOK.COM\n (2603:1096:d10:16::20) To PUZPR06MB4713.apcprd06.prod.outlook.com\n (2603:1096:301:b4::10)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "PUZPR06MB4713:EE_|OSNPR06MB8228:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "0552caf1-9d71-4444-70f3-08de3bafc1ea",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|1800799024|376014|52116014|366016|38350700014;",
        "X-Microsoft-Antispam-Message-Info": "\n SiPhbl4x4VmB3Wtj+sfXl0x299lhUjNF5ump6NC4ih7XAT+qhSbOZ4xbDXqZ6cnYx4yV9yjUhquYUI6GPIpjAawS6TIli4rZNBHmKutv45wQqKK9qd4JzDKHSvN5oWIyzySqadmPlHnNMabsWbV/cRtoWMlqOwFILQ+jrmxYHZXa3mY9d92BpC9WtQ4bfXuTWd3lBs3SJfJ52S2YDIK5I+B1iSQMJ+xR0NxwxDEsOO83YmCi6OV3Mj7ReauorKclJrp+YKxeWvBCCQGobO25YECl0KXZyRsgokRQkC8H23/yVbtls04VBdVmd6fiAgkhi198jJtMgEHphqtMtysN9cBiEavM9qtLEdK2ZE7DiO/PUTcqvILGfTmJo1S8KB77hi7adthL8IovWh6xytcR+tFYz4T+d1mtob35I1NAGtpxrQkKxEEfuTlD6AORc/vA7tZXSkLM4CsVkVbgXM2AxpP7boQ/uRfSvtdgsvUVl5idu3JZHjfLK1PjmXkZ1Nouc35DOIq2qh1Fx7cRSVD3fJ/WjcQtPfq2zIPHYbj9LDf27ynYWhkqxC/4cYJyAniJjnwxaGlfjThJ77wRdU517/QM7POAEdu+clGrnRi20MQvpz+tiQgYgaepDRLcrSWt8REpuYN5bhdqpu4BJtzh395pgXyDNAf4hGMWzIvvnZRI3ClAQFI4nndJWNVIlFtOyKfVjBgvpa0jd662wB7DN5GxwojRvjaIT2k39tWhq4vUq5TI8p1CPnzeJIe13dbcp1HOJf4CjDrlw3Ca9kMYDBuKXaugAqaUj11xaW7sAgcDEtgzJ7j6xOXhKp9RnnY+Krn3eNIJD7zW5QVLcE4+BTLIB0hO2iI2j9jtVCxK+AKzvlFv3+HiLb8uZ6Vuf7uyL0IFdsvxT0EH56emR8StwbeyWyPdK8+DekHSPjZg15+m/fghOOL2pgQq7YhzBRg/Ch/o5wOf+z5njeBwxjS7aRcY8FcJVp7gBABOqubjIWL1OWbHF6MZk6QkTQdbqNNiip4xe4/q7wpK6hJgJy+O0eSgMZ9GzhO0pDRKhmpy6W6dQMprR+FZf+RMOAZoccyOp/vr7XMHeHhohJX/gTGJX/pmvO6bSIS7+yNsI48CDoepOHLyl/HiiWlL6Ini+flZ5EbCscRIj5Kjmex/8WfdPA7b1DPAldPpueyn5SRyrs0jvhqSgBgC72Yg4lhq5roD2RJx1dJlxC4Tf8LyltcnMvxy6zZqHTote+tEjdrLwdRdMUft/pC8iPaJekigH1SzljC9iwkoae7eLB8HPKq3eu9Je4alN++jBMU8rAOYZneGbIJOPFUn4KzLK2ULdr36dg3/fmz4KsHBMCJuyeO3VUlA2ynKt9Lf7lH4zeElfJMGsUKLjjphCeybgDEVi7NQlv6jr3QQmSaJF8s6pYq4Bf0H/K59aKFwiQUKwmKc21PWmPkWsd3UhppnMqGp5LGjxlW8hJfdKM5vDHV3DdCcsRbWZGY2Z/2I9ukbLkKkMbSfjk7RbIarj1AY7JqkjwD8",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PUZPR06MB4713.apcprd06.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014); DIR:OUT;\n SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n TiORgqK/Dd4XHnFCea/1ncHPcVZ+p8C6lg3sRsOPf4LcJwELPWmAd3DDUZqdD1/29RrW6cX4rbBbwE26RCK/VKWj9F9p6ckhUSD6EJEXu3HvY/DJZ6JNw118DWQPe+hIMcGxWyeebrZREpfp1VQeF/axh/cR/5DCmKrnFIT8c3JeraHsn3CUaDxYFNCL3qRy9JSMg7Vz7uZGArYMQrO0ZyITuHGpYdLbpqko9UjUFa3etiGcW7EROHUOQjbFfCODvrlpc3WqDnK+aVp0WrXQB6idYM0ZLIDnCJVwZwYtPr3LdKZtEq4yW6U59+ml3pNkwbpkX/FHVx5YrRUNq2iOOaypAs5Mv8/52nuAN/oPWZmY6OfLI/dqAXJrQ49NNzkbXtea2t9h4VU+cT50hs0ugZmHVlPU5krC0KzFFNooOS6JXDrQ3hngtDzfcAlUuIpIMsJ+UYOn+NlAuVKANh4N/H/BNsoiEf0OmAxc6HKL9ICAjDRqy0KiOuuyhARdPAn6KhuYfAg2Z1nLX6CwWaDcAWp9jO4i1M/NpEMTYW0yODrAf0vH76YM7nnmBtsAk9OqrNPM6iJx+G484HWWJehK15w3hyBluQ6q0yIHZY1T8j+G7n3KE6mAfai9umGjpSYEFhM/JR/b9U2Adsq1HFKQhSkGX0/RiQglKuimHGz0MMD67OKjA2WrPqON2QpF0aV5b04DBgI29yurSevQZ5jwvMxsVH3DDg5TSJM5G6pQcAcdXOBS6sm30fjVHywqaP631daoh5jwAkb0u4bNuTBi1HTquoJ0sJrkeBOxYNVplFSnmIdT3Zf5VpUCbvcbPJlU85zSruvW7iJFKfcLEelzxffugu96KuzbSCcdUkzwWCtMqc59djnh1RsagNLJaMcyDkWWjsiPk8n2v3XSodQ5Qg235j5QiwwlxBonudvk/MahEvYSiIgbY1wfX8AlmV8hyWbKbl2N3vHfMWQOZx7rW0hAxxJR+BfbD5BwuHXIpCOzaHJFx+3XQQAEEVzAG9nocbpeDtK79W/r6fTsx+6BLrwiXjW7PiG+32myIw6Q40/OCa3DSBC1yP7updUKDIhDfCsqu5Zi7nTGFGwmhs09trDQ65opAH0KLq+8TVp7aCXOSUiRDe1LRXPK2KTYYq9tatdRJDNxDqb3z8jsOKG9Pof8z43E+9S72A/rLs+EsM/LBuqbm4pvs6jV2/tKi+LJIF32dKkuGfOKoo0j8Uk7SUtG4mUs0b/0g2/XeA5QndZFgYjxpZUgdQCmlpYRg7fKlpVgsR4WBuMpWIhnifAu4Fh05VGglz4fiG6+NggKgDpKZoAWjQSrZxcQAHHJh7yTxt6zkRz0bsutqNiymiOo1sWQNOv09LyjxhM2cSoyHkMgccONNCwsBYvVlH0VUIZYOchVSP63eVWzOdO23gcjoX6x7Vg82JfqLNUEMZp5fpSCfAbS5pVLrax+m+eiORIOCYh66tf00BanOslf4qyFuS81GHKrF4YUpqViTBc5wuBLdu2gCfLwrO0EJFkGLzKRhiAlNm3gUp+v+Ms3SJSCep2IlnSYHxzNv/h0FNH2BLIJceQ4uxJeHgtnT/cEAacq",
        "X-OriginatorOrg": "jaguarmicro.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 0552caf1-9d71-4444-70f3-08de3bafc1ea",
        "X-MS-Exchange-CrossTenant-AuthSource": "PUZPR06MB4713.apcprd06.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "15 Dec 2025 07:58:39.3632 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "1e45a5c2-d3e1-46b3-a0e6-c5ebf6d8ba7b",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n BDuaRmj3IN7F00kALnpxnol9OMffPeag9MiV3Paj8LU9UCmuDge2WAKFbRtzTlsc3pWF3O342VDyHxjAzXk24A==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "OSNPR06MB8228",
        "Received-SPF": "pass client-ip=2a01:111:f403:c406::3;\n envelope-from=wafer@jaguarmicro.com;\n helo=OS8PR02CU002.outbound.protection.outlook.com",
        "X-Spam_score_int": "-20",
        "X-Spam_score": "-2.1",
        "X-Spam_bar": "--",
        "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "From: wafer Xie <wafer@jaguarmicro.com>\n\nFor the used ring, based on the state of the SVQ descriptor,\nif it is indirect, retrieve the corresponding indirect buffer by index\nand then increment the freeing counter.\nOnce all descriptors in this buffer have been released,\nupdate the current buffer state to SVQ_INDIRECT_BUF_FREED.\n\nSigned-off-by: wafer Xie <wafer@jaguarmicro.com>\n---\n hw/virtio/vhost-shadow-virtqueue.c | 43 +++++++++++++++++++++++++++---\n 1 file changed, 39 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-virtqueue.c\nindex 85eff1d841..9d43f13842 100644\n--- a/hw/virtio/vhost-shadow-virtqueue.c\n+++ b/hw/virtio/vhost-shadow-virtqueue.c\n@@ -469,12 +469,47 @@ static VirtQueueElement *vhost_svq_get_buf(VhostShadowVirtqueue *svq,\n         return NULL;\n     }\n \n+    /* Check if indirect descriptors were used */\n+    int indirect_buf_idx = svq->desc_state[used_elem.id].indirect_buf_idx;\n+    bool used_indirect = (indirect_buf_idx >= 0);\n+\n+    /* Update indirect buffer state if it was used */\n+    if (used_indirect) {\n+         SVQIndirectDescBuf *buf = &svq->indirect_bufs[indirect_buf_idx];\n+         unsigned int ndescs = svq->desc_state[used_elem.id].ndescs;\n+\n+         /* Increment freeing_descs for descriptors returned from used ring */\n+         buf->freeing_descs += ndescs;\n+\n+         /* Check if all descriptors are accounted for (freed + freeing == num) */\n+         if (buf->freed_descs + buf->freeing_descs >= buf->num_descs) {\n+             /* Reset buffer to freed state */\n+             buf->state = SVQ_INDIRECT_BUF_FREED;\n+             buf->freed_descs = buf->num_descs;\n+             buf->freeing_descs = 0;\n+             buf->freed_head = 0;\n+         }\n+\n+         svq->desc_state[used_elem.id].indirect_buf_idx = -1;\n+    }\n+\n     num = svq->desc_state[used_elem.id].ndescs;\n     svq->desc_state[used_elem.id].ndescs = 0;\n-    last_used_chain = vhost_svq_last_desc_of_chain(svq, num, used_elem.id);\n-    svq->desc_next[last_used_chain] = svq->free_head;\n-    svq->free_head = used_elem.id;\n-    svq->num_free += num;\n+\n+    /*\n+     * If using indirect descriptors, only 1 main descriptor is used.\n+     * Otherwise, we used 'num' descriptors in a chain.\n+     */\n+    if (used_indirect) {\n+        svq->desc_next[used_elem.id] = svq->free_head;\n+        svq->free_head = used_elem.id;\n+        svq->num_free += 1;\n+    } else {\n+        last_used_chain = vhost_svq_last_desc_of_chain(svq, num, used_elem.id);\n+        svq->desc_next[last_used_chain] = svq->free_head;\n+        svq->free_head = used_elem.id;\n+        svq->num_free += num;\n+    }\n \n     *len = used_elem.len;\n     return g_steal_pointer(&svq->desc_state[used_elem.id].elem);\n",
    "prefixes": [
        "v2",
        "3/4"
    ]
}