get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 807708,
    "url": "http://patchwork.ozlabs.org/api/patches/807708/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170830163609.50260-10-pasic@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": "<20170830163609.50260-10-pasic@linux.vnet.ibm.com>",
    "list_archive_url": null,
    "date": "2017-08-30T16:36:09",
    "name": "[9/9] s390x: factor out common ioinst handler logic",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "6ded38f410ae5d7a5979a92dd87acf37019777b4",
    "submitter": {
        "id": 68297,
        "url": "http://patchwork.ozlabs.org/api/people/68297/?format=api",
        "name": "Halil Pasic",
        "email": "pasic@linux.vnet.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170830163609.50260-10-pasic@linux.vnet.ibm.com/mbox/",
    "series": [
        {
            "id": 648,
            "url": "http://patchwork.ozlabs.org/api/series/648/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=648",
            "date": "2017-08-30T16:36:02",
            "name": "",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/648/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/807708/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/807708/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 3xjB6y3L1Jz9sQl\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 31 Aug 2017 02:39:38 +1000 (AEST)",
            "from localhost ([::1]:51549 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 1dn61f-0000XY-Tx\n\tfor incoming@patchwork.ozlabs.org; Wed, 30 Aug 2017 12:39:35 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:50233)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <pasic@linux.vnet.ibm.com>) id 1dn5yp-0007K5-C8\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 12:36:42 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <pasic@linux.vnet.ibm.com>) id 1dn5ym-0006Ma-LU\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 12:36:39 -0400",
            "from mx0b-001b2d01.pphosted.com ([148.163.158.5]:55705\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 <pasic@linux.vnet.ibm.com>)\n\tid 1dn5ym-0006LM-FM\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 12:36:36 -0400",
            "from pps.filterd (m0098419.ppops.net [127.0.0.1])\n\tby mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv7UGTHjX091217\n\tfor <qemu-devel@nongnu.org>; Wed, 30 Aug 2017 12:36:35 -0400",
            "from e06smtp12.uk.ibm.com (e06smtp12.uk.ibm.com [195.75.94.108])\n\tby mx0b-001b2d01.pphosted.com with ESMTP id 2cp0gja0mv-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Wed, 30 Aug 2017 12:36:35 -0400",
            "from localhost\n\tby e06smtp12.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <pasic@linux.vnet.ibm.com>;\n\tWed, 30 Aug 2017 17:36:33 +0100",
            "from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198)\n\tby e06smtp12.uk.ibm.com (192.168.101.142) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tWed, 30 Aug 2017 17:36:31 +0100",
            "from d06av21.portsmouth.uk.ibm.com (d06av21.portsmouth.uk.ibm.com\n\t[9.149.105.232])\n\tby b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v7UGaVTZ21037070; Wed, 30 Aug 2017 16:36:31 GMT",
            "from d06av21.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id A3D0A52041;\n\tWed, 30 Aug 2017 16:31:57 +0100 (BST)",
            "from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])\n\tby d06av21.portsmouth.uk.ibm.com (Postfix) with ESMTPS id 75F095203F; \n\tWed, 30 Aug 2017 16:31:57 +0100 (BST)"
        ],
        "From": "Halil Pasic <pasic@linux.vnet.ibm.com>",
        "To": "Cornelia Huck <cohuck@redhat.com>",
        "Date": "Wed, 30 Aug 2017 18:36:09 +0200",
        "X-Mailer": "git-send-email 2.13.5",
        "In-Reply-To": "<20170830163609.50260-1-pasic@linux.vnet.ibm.com>",
        "References": "<20170830163609.50260-1-pasic@linux.vnet.ibm.com>",
        "X-TM-AS-GCONF": "00",
        "x-cbid": "17083016-0008-0000-0000-000004917049",
        "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused",
        "x-cbparentid": "17083016-0009-0000-0000-00001E21C2DA",
        "Message-Id": "<20170830163609.50260-10-pasic@linux.vnet.ibm.com>",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-08-30_07:, , signatures=0",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\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-1708300251",
        "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 9/9] s390x: factor out common ioinst handler\n\tlogic",
        "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": "Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,\n\tHalil Pasic <pasic@linux.vnet.ibm.com>,\n\tPierre Morel <pmorel@linux.vnet.ibm.com>, qemu-devel@nongnu.org",
        "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": "Some of ioinst the handlers look very much the same: they basically\ndelegate the work to the appropriate css function (doing some always the\nsame stuff before and after the call to the appropriate css function).\nLet us create a template and get rid of some code.\n\nSigned-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>\nSuggested-by: Marc Hartmayer <mhartmay@linux.vnet.ibm.com>\nReviewed-by: Pierre Morel<pmorel@linux.vnet.ibm.com>\n---\n\nThe handlers for MSCH and SSCH look very similar to our template too.\nIt's just that there is one more parameter to the corresponding css\nfunction. Maybe one could do something to unify that too (e.g. some\ncrazy macro) but I don't think it's worth the effort. Another idea\nwas to make the two corresponding functions single argument too\n(by Dong Jia).\n---\n target/s390x/ioinst.c | 77 ++++++++++-----------------------------------------\n 1 file changed, 14 insertions(+), 63 deletions(-)",
    "diff": "diff --git a/target/s390x/ioinst.c b/target/s390x/ioinst.c\nindex a286495219..6583e5216d 100644\n--- a/target/s390x/ioinst.c\n+++ b/target/s390x/ioinst.c\n@@ -37,7 +37,10 @@ int ioinst_disassemble_sch_ident(uint32_t value, int *m, int *cssid, int *ssid,\n     return 0;\n }\n \n-void ioinst_handle_xsch(S390CPU *cpu, uint64_t reg1)\n+/* many ionst handlers look the same: they just delegate to a some css func */\n+static void ioinst_handler_template_sch(S390CPU *cpu, uint64_t reg1,\n+                                      const char *iname,\n+                                      void (*handler_css)(SubchDev *))\n {\n     int cssid, ssid, schid, m;\n     SubchDev *sch;\n@@ -46,14 +49,14 @@ void ioinst_handle_xsch(S390CPU *cpu, uint64_t reg1)\n         program_interrupt(&cpu->env, PGM_OPERAND, 4);\n         return;\n     }\n-    trace_ioinst_sch_id(\"xsch\", cssid, ssid, schid);\n+    trace_ioinst_sch_id(iname, cssid, ssid, schid);\n     sch = css_find_subch(m, cssid, ssid, schid);\n     if (!sch || !css_subch_visible(sch)) {\n         setcc(cpu, 3);\n         return;\n     }\n     css_subch_clear_iret(sch);\n-    css_do_xsch(sch);\n+    handler_css(sch);\n     if (sch->iret.pgm_chk) {\n         program_interrupt(&cpu->env, sch->iret.irq_code, 4);\n         return;\n@@ -61,52 +64,19 @@ void ioinst_handle_xsch(S390CPU *cpu, uint64_t reg1)\n     setcc(cpu, sch->iret.cc);\n }\n \n-void ioinst_handle_csch(S390CPU *cpu, uint64_t reg1)\n+void ioinst_handle_xsch(S390CPU *cpu, uint64_t reg1)\n {\n-    int cssid, ssid, schid, m;\n-    SubchDev *sch;\n+    ioinst_handler_template_sch(cpu, reg1, \"xsch\", css_do_xsch);\n+}\n \n-    if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) {\n-        program_interrupt(&cpu->env, PGM_OPERAND, 4);\n-        return;\n-    }\n-    trace_ioinst_sch_id(\"csch\", cssid, ssid, schid);\n-    sch = css_find_subch(m, cssid, ssid, schid);\n-    if (!sch || !css_subch_visible(sch)) {\n-        setcc(cpu, 3);\n-        return;\n-    }\n-    css_subch_clear_iret(sch);\n-    css_do_csch(sch);\n-    if (sch->iret.pgm_chk) {\n-        program_interrupt(&cpu->env, sch->iret.irq_code, 4);\n-        return;\n-    }\n-    setcc(cpu, sch->iret.cc);\n+void ioinst_handle_csch(S390CPU *cpu, uint64_t reg1)\n+{\n+    ioinst_handler_template_sch(cpu, reg1, \"csch\", css_do_csch);\n }\n \n void ioinst_handle_hsch(S390CPU *cpu, uint64_t reg1)\n {\n-    int cssid, ssid, schid, m;\n-    SubchDev *sch;\n-\n-    if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) {\n-        program_interrupt(&cpu->env, PGM_OPERAND, 4);\n-        return;\n-    }\n-    trace_ioinst_sch_id(\"hsch\", cssid, ssid, schid);\n-    sch = css_find_subch(m, cssid, ssid, schid);\n-    if (!sch || !css_subch_visible(sch)) {\n-        setcc(cpu, 3);\n-        return;\n-    }\n-    css_subch_clear_iret(sch);\n-    css_do_hsch(sch);\n-    if (sch->iret.pgm_chk) {\n-        program_interrupt(&cpu->env, sch->iret.irq_code, 4);\n-        return;\n-    }\n-    setcc(cpu, sch->iret.cc);\n+    ioinst_handler_template_sch(cpu, reg1, \"hsch\", css_do_hsch);\n }\n \n static int ioinst_schib_valid(SCHIB *schib)\n@@ -720,26 +690,7 @@ void ioinst_handle_schm(S390CPU *cpu, uint64_t reg1, uint64_t reg2,\n \n void ioinst_handle_rsch(S390CPU *cpu, uint64_t reg1)\n {\n-    int cssid, ssid, schid, m;\n-    SubchDev *sch;\n-\n-    if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) {\n-        program_interrupt(&cpu->env, PGM_OPERAND, 4);\n-        return;\n-    }\n-    trace_ioinst_sch_id(\"rsch\", cssid, ssid, schid);\n-    sch = css_find_subch(m, cssid, ssid, schid);\n-    if (!sch || !css_subch_visible(sch)) {\n-        setcc(cpu, 3);\n-        return;\n-    }\n-    css_subch_clear_iret(sch);\n-    css_do_rsch(sch);\n-    if (sch->iret.pgm_chk) {\n-        program_interrupt(&cpu->env, sch->iret.irq_code, 4);\n-        return;\n-    }\n-    setcc(cpu, sch->iret.cc);\n+    ioinst_handler_template_sch(cpu, reg1, \"rsch\", css_do_rsch);\n }\n \n #define RCHP_REG1_RES(_reg) (_reg & 0x00000000ff00ff00)\n",
    "prefixes": [
        "9/9"
    ]
}