get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 806821,
    "url": "http://patchwork.ozlabs.org/api/patches/806821/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-21-git-send-email-mdroth@linux.vnet.ibm.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": "<1503965694-10794-21-git-send-email-mdroth@linux.vnet.ibm.com>",
    "list_archive_url": null,
    "date": "2017-08-29T00:13:55",
    "name": "[20/79] hw/virtio: fix vhost user fails to startup when MQ",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "6d841fbc737bf42b90a3621698e935a67db31a3d",
    "submitter": {
        "id": 5549,
        "url": "http://patchwork.ozlabs.org/api/people/5549/?format=api",
        "name": "Michael Roth",
        "email": "mdroth@linux.vnet.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-21-git-send-email-mdroth@linux.vnet.ibm.com/mbox/",
    "series": [
        {
            "id": 281,
            "url": "http://patchwork.ozlabs.org/api/series/281/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=281",
            "date": "2017-08-29T00:13:45",
            "name": "Patch Round-up for stable 2.9.1, freeze on 2017-09-04",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/281/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/806821/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/806821/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@bilbo.ozlabs.org",
        "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xh8ZR0FJsz9s65\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 29 Aug 2017 10:26:23 +1000 (AEST)",
            "from localhost ([::1]:41933 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dmUMG-0001tH-QJ\n\tfor incoming@patchwork.ozlabs.org; Mon, 28 Aug 2017 20:26:20 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:47548)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCD-0000vn-EE\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:01 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCA-0005BN-9N\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:15:57 -0400",
            "from mx0b-001b2d01.pphosted.com ([148.163.158.5]:60778\n\thelo=mx0a-001b2d01.pphosted.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <mdroth@linux.vnet.ibm.com>)\n\tid 1dmUC9-0005Aq-UW\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:15:54 -0400",
            "from pps.filterd (m0098417.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv7T0E7Lh043811\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:15:53 -0400",
            "from e14.ny.us.ibm.com (e14.ny.us.ibm.com [129.33.205.204])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2cmu3kpdwp-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:15:53 -0400",
            "from localhost\n\tby e14.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <mdroth@linux.vnet.ibm.com>;\n\tMon, 28 Aug 2017 20:15:52 -0400",
            "from b01cxnp22033.gho.pok.ibm.com (9.57.198.23)\n\tby e14.ny.us.ibm.com (146.89.104.201) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tMon, 28 Aug 2017 20:15:49 -0400",
            "from b01ledav002.gho.pok.ibm.com (b01ledav002.gho.pok.ibm.com\n\t[9.57.199.107])\n\tby b01cxnp22033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP\n\tid v7T0FnZa24182982; Tue, 29 Aug 2017 00:15:49 GMT",
            "from b01ledav002.gho.pok.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 473D4124047;\n\tMon, 28 Aug 2017 20:13:09 -0400 (EDT)",
            "from localhost (unknown [9.80.85.217])\n\tby b01ledav002.gho.pok.ibm.com (Postfix) with ESMTP id 1918E124035;\n\tMon, 28 Aug 2017 20:13:09 -0400 (EDT)"
        ],
        "From": "Michael Roth <mdroth@linux.vnet.ibm.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Mon, 28 Aug 2017 19:13:55 -0500",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>",
        "References": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "X-TM-AS-GCONF": "00",
        "x-cbid": "17082900-0052-0000-0000-00000257332A",
        "X-IBM-SpamModules-Scores": "",
        "X-IBM-SpamModules-Versions": "BY=3.00007630; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000226; SDB=6.00909028; UDB=6.00455849;\n\tIPR=6.00689279; \n\tBA=6.00005557; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00016909;\n\tXFM=3.00000015; UTC=2017-08-29 00:15:51",
        "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused",
        "x-cbparentid": "17082900-0053-0000-0000-000051D1D91D",
        "Message-Id": "<1503965694-10794-21-git-send-email-mdroth@linux.vnet.ibm.com>",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-08-28_13:, , signatures=0",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=1\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1708290001",
        "Content-Transfer-Encoding": "quoted-printable",
        "X-MIME-Autoconverted": "from 8bit to quoted-printable by\n\tmx0a-001b2d01.pphosted.com id v7T0E7Lh043811",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]",
        "X-Received-From": "148.163.158.5",
        "Subject": "[Qemu-devel] [PATCH 20/79] hw/virtio: fix vhost user fails to\n\tstartup when MQ",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://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\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "Zhiyong Yang <zhiyong.yang@intel.com>, qemu-stable@nongnu.org,\n\t\"Michael S . Tsirkin\" <mst@redhat.com>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "From: Zhiyong Yang <zhiyong.yang@intel.com>\n\n Qemu2.7~2.9 and vhost user for dpdk 17.02 release work together\nto cause failures of new connection when negotiating to set MQ.\n(one queue pair works well).\n   Because there exist some bugs in qemu code when introducing\nVHOST_USER_PROTOCOL_F_REPLY_ACK to qemu. When vhost_user_set_mem_table\nis invoked to deal with the vhost message VHOST_USER_SET_MEM_TABLE\nfor the second time, qemu indeed doesn't send the messge (The message\nneeds to be sent only once)but still will be waiting for dpdk's reply\nack, then, qemu is always freezing, while DPDK is always waiting for\nnext vhost message from qemu.\n  The patch aims to fix the bug, MQ can work well.\n  The same bug is found in function vhost_user_net_set_mtu, it is fixed\nat the same time.\n  DPDK related patch is as following:\n  http://www.dpdk.org/dev/patchwork/patch/23955/\n\nSigned-off-by: Zhiyong Yang <zhiyong.yang@intel.com>\nCc: qemu-stable@nongnu.org\nFixes: ca525ce5618b (\"vhost-user: Introduce a new protocol feature REPLY_ACK.\")\nReviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>\nReviewed-by: Michael S. Tsirkin <mst@redhat.com>\nSigned-off-by: Michael S. Tsirkin <mst@redhat.com>\nTested-by: Jens Freimann <jfreiman@redhat.com>\nReviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>\n(cherry picked from commit 60cd11024f41cc73175e651a2dfe09a3cade56bb)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>\n---\n hw/virtio/vhost-user.c | 21 +++++++++++++--------\n 1 file changed, 13 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c\nindex 9334a8a..32a95a8c 100644\n--- a/hw/virtio/vhost-user.c\n+++ b/hw/virtio/vhost-user.c\n@@ -163,22 +163,26 @@ fail:\n }\n \n static int process_message_reply(struct vhost_dev *dev,\n-                                 VhostUserRequest request)\n+                                 VhostUserMsg msg)\n {\n-    VhostUserMsg msg;\n+    VhostUserMsg msg_reply;\n \n-    if (vhost_user_read(dev, &msg) < 0) {\n+    if ((msg.flags & VHOST_USER_NEED_REPLY_MASK) == 0) {\n+        return 0;\n+    }\n+\n+    if (vhost_user_read(dev, &msg_reply) < 0) {\n         return -1;\n     }\n \n-    if (msg.request != request) {\n+    if (msg_reply.request != msg.request) {\n         error_report(\"Received unexpected msg type.\"\n                      \"Expected %d received %d\",\n-                     request, msg.request);\n+                     msg.request, msg_reply.request);\n         return -1;\n     }\n \n-    return msg.payload.u64 ? -1 : 0;\n+    return msg_reply.payload.u64 ? -1 : 0;\n }\n \n static bool vhost_user_one_time_request(VhostUserRequest request)\n@@ -208,6 +212,7 @@ static int vhost_user_write(struct vhost_dev *dev, VhostUserMsg *msg,\n      * request, we just ignore it.\n      */\n     if (vhost_user_one_time_request(msg->request) && dev->vq_index != 0) {\n+        msg->flags &= ~VHOST_USER_NEED_REPLY_MASK;\n         return 0;\n     }\n \n@@ -320,7 +325,7 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev,\n     }\n \n     if (reply_supported) {\n-        return process_message_reply(dev, msg.request);\n+        return process_message_reply(dev, msg);\n     }\n \n     return 0;\n@@ -712,7 +717,7 @@ static int vhost_user_net_set_mtu(struct vhost_dev *dev, uint16_t mtu)\n \n     /* If reply_ack supported, slave has to ack specified MTU is valid */\n     if (reply_supported) {\n-        return process_message_reply(dev, msg.request);\n+        return process_message_reply(dev, msg);\n     }\n \n     return 0;\n",
    "prefixes": [
        "20/79"
    ]
}