get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 125458,
    "url": "http://patchwork.dpdk.org/api/patches/125458/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230323144433.3104768-1-david.marchand@redhat.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230323144433.3104768-1-david.marchand@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230323144433.3104768-1-david.marchand@redhat.com",
    "date": "2023-03-23T14:44:33",
    "name": "vhost: fix deadlock with no multiqueue",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "4356be08979de8223a4670130eb51dc7a3f171e0",
    "submitter": {
        "id": 1173,
        "url": "http://patchwork.dpdk.org/api/people/1173/?format=api",
        "name": "David Marchand",
        "email": "david.marchand@redhat.com"
    },
    "delegate": {
        "id": 2642,
        "url": "http://patchwork.dpdk.org/api/users/2642/?format=api",
        "username": "mcoquelin",
        "first_name": "Maxime",
        "last_name": "Coquelin",
        "email": "maxime.coquelin@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230323144433.3104768-1-david.marchand@redhat.com/mbox/",
    "series": [
        {
            "id": 27522,
            "url": "http://patchwork.dpdk.org/api/series/27522/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=27522",
            "date": "2023-03-23T14:44:33",
            "name": "vhost: fix deadlock with no multiqueue",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/27522/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/125458/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/125458/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 3148F42826;\n\tThu, 23 Mar 2023 15:44:50 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0C0F84021E;\n\tThu, 23 Mar 2023 15:44:50 +0100 (CET)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by mails.dpdk.org (Postfix) with ESMTP id 1528F4021D\n for <dev@dpdk.org>; Thu, 23 Mar 2023 15:44:47 +0100 (CET)",
            "from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com\n [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n us-mta-343-NKgCU1_zPmSKiYjq8ZI2vQ-1; Thu, 23 Mar 2023 10:44:44 -0400",
            "from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com\n [10.11.54.1])\n (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n (No client certificate requested)\n by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0DCAE857FB7;\n Thu, 23 Mar 2023 14:44:44 +0000 (UTC)",
            "from dmarchan.redhat.com (unknown [10.45.224.63])\n by smtp.corp.redhat.com (Postfix) with ESMTP id F389F40CF916;\n Thu, 23 Mar 2023 14:44:36 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1679582687;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=CJzxLkiqN9Y44FcgELM5C5E7SHe69OUzoiX/fgIYfzg=;\n b=OlwRyuFtLa2XBruqKMys1e+B+AfMLhWk0nNzJHR45143Dp3dlYuO83Sz9NGR3fSAn9o4ql\n FxBDdPhQV0/fmDQ4I26d1HXG4vvi8gcRzVo17HoB6UslxDVdwZSL5010i3KJj9S9+yazvh\n OomCgJfYZWJOcVtw6aJIBgsojQiu1jI=",
        "X-MC-Unique": "NKgCU1_zPmSKiYjq8ZI2vQ-1",
        "From": "David Marchand <david.marchand@redhat.com>",
        "To": "dev@dpdk.org",
        "Cc": "maxime.coquelin@redhat.com,\n\tchenbo.xia@intel.com,\n\tyanghliu@redhat.com",
        "Subject": "[PATCH] vhost: fix deadlock with no multiqueue",
        "Date": "Thu, 23 Mar 2023 15:44:33 +0100",
        "Message-Id": "<20230323144433.3104768-1-david.marchand@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.1 on 10.11.54.1",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "This deadlock happens when a guest, that had virtio ports with multi\nqueues configured, does not announce the multi q feature in\nSET_FEATURES.\nIn such a situation, all vq locks are already taken before calling\nfree_vq(), which itself takes the lock.\n\nAs mentioned in the code, in this situation, the virtio device is not\nrunning yet and no datapath thread is using the vq. So we can\nrelease the lock before calling free_vq().\n\nBugzilla ID: 1196\nFixes: 4b02c2673757 (\"vhost: annotate async accesses\")\n\nSigned-off-by: David Marchand <david.marchand@redhat.com>\n---\n lib/vhost/vhost_user.c | 3 +++\n 1 file changed, 3 insertions(+)",
    "diff": "diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c\nindex f5edba8548..d60e39b6bc 100644\n--- a/lib/vhost/vhost_user.c\n+++ b/lib/vhost/vhost_user.c\n@@ -397,6 +397,9 @@ vhost_user_set_features(struct virtio_net **pdev,\n \t\t\tdev->virtqueue[dev->nr_vring] = NULL;\n \t\t\tcleanup_vq(vq, 1);\n \t\t\tcleanup_vq_inflight(dev, vq);\n+\t\t\t/* vhost_user_lock_all_queue_pairs locked all qps */\n+\t\t\tvq_assert_lock(dev, vq);\n+\t\t\trte_spinlock_unlock(&vq->access_lock);\n \t\t\tfree_vq(dev, vq);\n \t\t}\n \t}\n",
    "prefixes": []
}