get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 817386,
    "url": "http://patchwork.ozlabs.org/api/patches/817386/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170922083855.102341-3-borntraeger@de.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": "<20170922083855.102341-3-borntraeger@de.ibm.com>",
    "list_archive_url": null,
    "date": "2017-09-22T08:38:54",
    "name": "[PATCH/RFC,2/3] s390x/ais: enable ais when migration is available",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "66edb7c3fa0233e5a278aa082615855c90591b6b",
    "submitter": {
        "id": 590,
        "url": "http://patchwork.ozlabs.org/api/people/590/?format=api",
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170922083855.102341-3-borntraeger@de.ibm.com/mbox/",
    "series": [
        {
            "id": 4570,
            "url": "http://patchwork.ozlabs.org/api/series/4570/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=4570",
            "date": "2017-09-22T08:38:54",
            "name": "ais fixups for 2.11",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/4570/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/817386/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/817386/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 3xz6Nm0qCxz9sBd\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 22 Sep 2017 18:39:52 +1000 (AEST)",
            "from localhost ([::1]:57351 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 1dvJV0-0005Vs-4i\n\tfor incoming@patchwork.ozlabs.org; Fri, 22 Sep 2017 04:39:50 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:51353)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <borntraeger@de.ibm.com>) id 1dvJUM-0005TC-JD\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 04:39:11 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <borntraeger@de.ibm.com>) id 1dvJUJ-0003uY-Fh\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 04:39:10 -0400",
            "from mx0a-001b2d01.pphosted.com ([148.163.156.1]:58344)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <borntraeger@de.ibm.com>)\n\tid 1dvJUJ-0003tm-6l\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 04:39:07 -0400",
            "from pps.filterd (m0098410.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8M8cwpY140374\n\tfor <qemu-devel@nongnu.org>; Fri, 22 Sep 2017 04:39:03 -0400",
            "from e06smtp15.uk.ibm.com (e06smtp15.uk.ibm.com [195.75.94.111])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2d4xb5ad92-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Fri, 22 Sep 2017 04:39:02 -0400",
            "from localhost\n\tby e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <borntraeger@de.ibm.com>;\n\tFri, 22 Sep 2017 09:39:00 +0100",
            "from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198)\n\tby e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tFri, 22 Sep 2017 09:38:57 +0100",
            "from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com\n\t[9.149.105.58])\n\tby b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v8M8cu9E12452094; Fri, 22 Sep 2017 08:38:56 GMT",
            "from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 515F24C04E;\n\tFri, 22 Sep 2017 09:35:18 +0100 (BST)",
            "from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 389E14C044;\n\tFri, 22 Sep 2017 09:35:18 +0100 (BST)",
            "from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])\n\tby d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTPS;\n\tFri, 22 Sep 2017 09:35:18 +0100 (BST)",
            "by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 25651)\n\tid 2AF9020F62C; Fri, 22 Sep 2017 10:38:56 +0200 (CEST)"
        ],
        "From": "Christian Borntraeger <borntraeger@de.ibm.com>",
        "To": "Cornelia Huck <cohuck@redhat.com>",
        "Date": "Fri, 22 Sep 2017 10:38:54 +0200",
        "X-Mailer": "git-send-email 2.9.4",
        "In-Reply-To": "<20170922083855.102341-1-borntraeger@de.ibm.com>",
        "References": "<20170922083855.102341-1-borntraeger@de.ibm.com>",
        "X-TM-AS-GCONF": "00",
        "x-cbid": "17092208-0020-0000-0000-000003BA3E25",
        "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused",
        "x-cbparentid": "17092208-0021-0000-0000-0000424C02A5",
        "Message-Id": "<20170922083855.102341-3-borntraeger@de.ibm.com>",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-22_02:, , 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-1709220120",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]",
        "X-Received-From": "148.163.156.1",
        "Subject": "[Qemu-devel] [PATCH/RFC 2/3] s390x/ais: enable ais when migration\n\tis available",
        "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": "Halil Pasic <pasic@linux.vnet.ibm.com>,\n\tYi Min Zhao <zyimin@linux.vnet.ibm.com>,\n\tDavid Hildenbrand <david@redhat.com>,\n\tqemu-devel <qemu-devel@nongnu.org>, Alexander Graf <agraf@suse.de>,\n\tChristian Borntraeger <borntraeger@de.ibm.com>,\n\t\"Jason J . Herne\" <jjherne@linux.vnet.ibm.com>,\n\tRichard Henderson <rth@twiddle.net>",
        "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": "Instead of unconditionally enabling the KVM AIS capability\nin the kvm arch init function, do this in the flic realize function\nwhen we know if migration is available. This requires to initialize\nflic before the CPUs.\n\nSigned-off-by: Christian Borntraeger <borntraeger@de.ibm.com>\n---\n hw/intc/s390_flic.c          | 11 +++++++++--\n hw/intc/s390_flic_kvm.c      |  8 +++++++-\n hw/s390x/s390-virtio-ccw.c   |  8 ++++++--\n include/hw/s390x/s390_flic.h |  1 +\n target/s390x/cpu_models.c    |  6 ++++++\n target/s390x/kvm.c           |  8 +-------\n 6 files changed, 30 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c\nindex 6eaf178..08040fe 100644\n--- a/hw/intc/s390_flic.c\n+++ b/hw/intc/s390_flic.c\n@@ -1,7 +1,7 @@\n /*\n  * QEMU S390x floating interrupt controller (flic)\n  *\n- * Copyright 2014 IBM Corp.\n+ * Copyright 2014,2017 IBM Corp.\n  * Author(s): Jens Freimann <jfrei@linux.vnet.ibm.com>\n  *            Cornelia Huck <cornelia.huck@de.ibm.com>\n  *\n@@ -49,6 +49,13 @@ void s390_flic_init(void)\n     qdev_init_nofail(dev);\n }\n \n+void s390_flic_enable_ais(void)\n+{\n+    S390FLICState *fs = s390_get_flic();\n+\n+    fs->ais_supported = true;\n+}\n+\n static int qemu_s390_register_io_adapter(S390FLICState *fs, uint32_t id,\n                                          uint8_t isc, bool swap,\n                                          bool is_maskable, uint8_t flags)\n@@ -186,7 +193,7 @@ static void s390_flic_common_realize(DeviceState *dev, Error **errp)\n         return;\n     }\n \n-    fs->ais_supported = s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION);\n+    fs->ais_supported = false;\n }\n \n static void s390_flic_class_init(ObjectClass *oc, void *data)\ndiff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c\nindex 7ead17a..a655567 100644\n--- a/hw/intc/s390_flic_kvm.c\n+++ b/hw/intc/s390_flic_kvm.c\n@@ -1,7 +1,7 @@\n /*\n  * QEMU S390x KVM floating interrupt controller (flic)\n  *\n- * Copyright 2014 IBM Corp.\n+ * Copyright 2014,2017 IBM Corp.\n  * Author(s): Jens Freimann <jfrei@linux.vnet.ibm.com>\n  *            Cornelia Huck <cornelia.huck@de.ibm.com>\n  *\n@@ -557,6 +557,12 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error **errp)\n     test_attr.group = KVM_DEV_FLIC_CLEAR_IO_IRQ;\n     flic_state->clear_io_supported = !ioctl(flic_state->fd,\n                                             KVM_HAS_DEVICE_ATTR, test_attr);\n+    /* try enable the AIS facility */\n+    test_attr.group = KVM_DEV_FLIC_AISM_ALL;\n+    if (!ioctl(flic_state->fd, KVM_HAS_DEVICE_ATTR, test_attr)) {\n+            kvm_vm_enable_cap(kvm_state, KVM_CAP_S390_AIS, 0);\n+    }\n+\n     return;\n fail:\n     error_propagate(errp, errp_local);\ndiff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c\nindex fafbc6d..11d4dc4 100644\n--- a/hw/s390x/s390-virtio-ccw.c\n+++ b/hw/s390x/s390-virtio-ccw.c\n@@ -279,11 +279,15 @@ static void ccw_init(MachineState *machine)\n     s390_sclp_init();\n     s390_memory_init(machine->ram_size);\n \n+    /*\n+     * This might also enable some KVM features like AIS, so it must\n+     * be called before the CPU model\n+     */\n+    s390_flic_init();\n+\n     /* init CPUs (incl. CPU model) early so s390_has_feature() works */\n     s390_init_cpus(machine);\n \n-    s390_flic_init();\n-\n     /* get a BUS */\n     css_bus = virtual_css_bus_init();\n     s390_init_ipl_dev(machine->kernel_filename, machine->kernel_cmdline,\ndiff --git a/include/hw/s390x/s390_flic.h b/include/hw/s390x/s390_flic.h\nindex 7aab6ef..ac4e170 100644\n--- a/include/hw/s390x/s390_flic.h\n+++ b/include/hw/s390x/s390_flic.h\n@@ -90,6 +90,7 @@ void s390_flic_init(void);\n \n S390FLICState *s390_get_flic(void);\n bool ais_needed(void *opaque);\n+void s390_flic_enable_ais(void);\n \n #ifdef CONFIG_KVM\n DeviceState *s390_flic_kvm_create(void);\ndiff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c\nindex 5169379..03ff583 100644\n--- a/target/s390x/cpu_models.c\n+++ b/target/s390x/cpu_models.c\n@@ -23,6 +23,7 @@\n #include \"qapi/qobject-input-visitor.h\"\n #include \"qapi/qmp/qbool.h\"\n #ifndef CONFIG_USER_ONLY\n+#include \"hw/s390x/s390_flic.h\"\n #include \"sysemu/arch_init.h\"\n #endif\n \n@@ -901,6 +902,11 @@ static inline void apply_cpu_model(const S390CPUModel *model, Error **errp)\n             applied_model = *model;\n         }\n     }\n+\n+    if (model &&\n+        test_bit(S390_FEAT_ADAPTER_INT_SUPPRESSION, model->features)) {\n+        s390_flic_enable_ais();\n+    }\n #endif\n }\n \ndiff --git a/target/s390x/kvm.c b/target/s390x/kvm.c\nindex ebb75ca..6c5c57e 100644\n--- a/target/s390x/kvm.c\n+++ b/target/s390x/kvm.c\n@@ -311,13 +311,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s)\n         }\n     }\n \n-    /*\n-     * The migration interface for ais was introduced with kernel 4.13\n-     * but the capability itself had been active since 4.12. As migration\n-     * support is considered necessary let's disable ais in the 2.10\n-     * machine.\n-     */\n-    /* kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0); */\n+    /* The AIS enablement happens in the flic realize */\n \n     qemu_mutex_init(&qemu_sigp_mutex);\n \n",
    "prefixes": [
        "PATCH/RFC",
        "2/3"
    ]
}