get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2230838,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2230838/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260430054906.94431-6-amachhiw@linux.ibm.com/",
    "project": {
        "id": 2,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/2/?format=api",
        "name": "Linux PPC development",
        "link_name": "linuxppc-dev",
        "list_id": "linuxppc-dev.lists.ozlabs.org",
        "list_email": "linuxppc-dev@lists.ozlabs.org",
        "web_url": "https://github.com/linuxppc/wiki/wiki",
        "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git",
        "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/"
    },
    "msgid": "<20260430054906.94431-6-amachhiw@linux.ibm.com>",
    "date": "2026-04-30T05:49:04",
    "name": "[5/6] KVM: PPC: Book3S HV: Add support for compat CPU capabilities for KVM on PowerNV",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "33a3fed4ac56cacbe5d62f2d9825356233085c54",
    "submitter": {
        "id": 87864,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/87864/?format=api",
        "name": "Amit Machhiwal",
        "email": "amachhiw@linux.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260430054906.94431-6-amachhiw@linux.ibm.com/mbox/",
    "series": [
        {
            "id": 502205,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/502205/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=502205",
            "date": "2026-04-30T05:48:59",
            "name": "KVM: PPC: Handle CPU compatibility mode for nested guests",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/502205/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2230838/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2230838/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "\n <linuxppc-dev+bounces-20337-incoming=patchwork.ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=Xx6zKEGf;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-20337-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "lists.ozlabs.org;\n arc=none smtp.remote-ip=148.163.158.5",
            "lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com",
            "lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=Xx6zKEGf;\n\tdkim-atps=neutral",
            "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=linux.ibm.com\n (client-ip=148.163.158.5; helo=mx0b-001b2d01.pphosted.com;\n envelope-from=amachhiw@linux.ibm.com; receiver=lists.ozlabs.org)"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5jvn3zgqz1yHZ\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 15:51:01 +1000 (AEST)",
            "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4g5jvm3pMXz2xnQ;\n\tThu, 30 Apr 2026 15:51:00 +1000 (AEST)",
            "from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n [148.163.158.5])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4g5jvl4sQtz2xMY\n\tfor <linuxppc-dev@lists.ozlabs.org>; Thu, 30 Apr 2026 15:50:59 +1000 (AEST)",
            "from pps.filterd (m0356516.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63TGV5kW2037068;\n\tThu, 30 Apr 2026 05:50:50 GMT",
            "from ppma13.dal12v.mail.ibm.com\n (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221])\n\tby mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4drk1jvm7s-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 30 Apr 2026 05:50:49 +0000 (GMT)",
            "from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1])\n\tby ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id\n 63U5colb013174;\n\tThu, 30 Apr 2026 05:50:48 GMT",
            "from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225])\n\tby ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dsa5ghems-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 30 Apr 2026 05:50:48 +0000 (GMT)",
            "from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com\n [10.20.54.102])\n\tby smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 63U5ojMI43516166\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n\tThu, 30 Apr 2026 05:50:45 GMT",
            "from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 4B0C920043;\n\tThu, 30 Apr 2026 05:50:45 +0000 (GMT)",
            "from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 1FABA20040;\n\tThu, 30 Apr 2026 05:50:42 +0000 (GMT)",
            "from localhost.localdomain (unknown [9.39.18.70])\n\tby smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP;\n\tThu, 30 Apr 2026 05:50:41 +0000 (GMT)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1777528260;\n\tcv=none;\n b=Fr8g5VzRmZpttbxAVxkZWCMUAO+oJvRLFwX0rmHPo4GKtIJCvBLQKxKVlnY/EqqD+YxOP+xUG1jL4D2kqbX094ct/10wu5cKb8z5we8aNplmGtarW8Ax6/N9c/qGWEVnDcVKdBixbEVQ8YSB9oVF5d+g1St+6T2SmTV2KaH82YIZdvdyNzkWUi4ym6QEzwjWZqSNBst7yb44f0PqPLlbM08SW6dQfUUdSEf9wf1lwwqxGpK2Xx+d/Ju7cUpR+cwFw/+ZPZZKa8uKzn/Fqq2Bi0K9zE/Y3d9nGlF4bPNsq6XVaYNS9Naz1gRre6dPwj9d9Q7VE/1UEVHVju0S7A6eoA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1777528260; c=relaxed/relaxed;\n\tbh=Cy6bOdGwcpAN6PjTw79AQNezQbvoMdFpgvQLRpDMT4o=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=W5WRbcNhhep+dzlb1gkxURvPsBVTe3cIkXtt1jdCvztBRLXvVPsgmJCykrnfZipb+khkUdMYXxM4xjgnjnfB7ggEy1uYGbTvr8oz+urgLV3lmfyBhHoJ/eOQaMIKbAcCdMeGo3mkpUJdBz3RN5jJsuvCollTmVy+a6PEF4kIOh+6oUPXLdKWPwv8JrXEKIbrcHqy9bdunP/MYqgBjmJvXvW/0DzqH0Yc2NuJzebtkYOBfXkzAh2HKPIXfQJuxI1R63MD4D/mp9obp2IpXU4+/3iF5g6UlLbixKogo8YupNJnO4cQVo/JPcYjYYmQfo19jWdFc5bLURVFkJ0tZhzwPw==",
        "ARC-Authentication-Results": "i=1; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=Xx6zKEGf; dkim-atps=neutral;\n spf=pass (client-ip=148.163.158.5; helo=mx0b-001b2d01.pphosted.com;\n envelope-from=amachhiw@linux.ibm.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=linux.ibm.com",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n\t:content-transfer-encoding:date:from:in-reply-to:message-id\n\t:mime-version:references:subject:to; s=pp1; bh=Cy6bOdGwcpAN6PjTw\n\t79AQNezQbvoMdFpgvQLRpDMT4o=; b=Xx6zKEGfL7r8a/2aJpcd+XBzp8SJckW2Z\n\tN/BTFMBuDZ+WkAvGPbQCWQkNSaFtSRzcGubBS8vCIIdfchvyjn+ZGFkbiETATQyZ\n\tacb1mVOKzGYpbHyQRmeiROMEvFFfKWLmOeHdnbRqGnTPOxe15Hxw3n+Bg3JzSQy+\n\tmn/tV92igrKC3WOn/5PCQc4ZrEp8heq4SVa8zEm3hOLZEpSClLEUTVkwXcIRgBeH\n\tHHsK+26Z5U3mWgBp60T7JDHycQkBDsoYhAR70WTlD4RIChq6VYDyPokj5S8q5LoC\n\t6pzKbo0ye6GvUN4cbFqVFcBZVRq0SXDvPf9rXoRsEkL+QIa38p4QQ==",
        "From": "Amit Machhiwal <amachhiw@linux.ibm.com>",
        "To": "linuxppc-dev@lists.ozlabs.org, Madhavan Srinivasan <maddy@linux.ibm.com>",
        "Cc": "Amit Machhiwal <amachhiw@linux.ibm.com>,\n        Vaibhav Jain <vaibhav@linux.ibm.com>,\n        Nicholas Piggin <npiggin@gmail.com>,\n        Michael Ellerman <mpe@ellerman.id.au>,\n        \"Christophe Leroy (CS GROUP)\" <chleroy@kernel.org>,\n        kvm@vger.kernel.org, linux-kernel@vger.kernel.org",
        "Subject": "[PATCH 5/6] KVM: PPC: Book3S HV: Add support for compat CPU\n capabilities for KVM on PowerNV",
        "Date": "Thu, 30 Apr 2026 11:19:04 +0530",
        "Message-ID": "<20260430054906.94431-6-amachhiw@linux.ibm.com>",
        "X-Mailer": "git-send-email 2.50.1",
        "In-Reply-To": "<20260430054906.94431-1-amachhiw@linux.ibm.com>",
        "References": "<20260430054906.94431-1-amachhiw@linux.ibm.com>",
        "X-Mailing-List": "linuxppc-dev@lists.ozlabs.org",
        "List-Id": "<linuxppc-dev.lists.ozlabs.org>",
        "List-Help": "<mailto:linuxppc-dev+help@lists.ozlabs.org>",
        "List-Owner": "<mailto:linuxppc-dev+owner@lists.ozlabs.org>",
        "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>",
        "List-Archive": "<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>",
        "List-Subscribe": "<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>",
        "List-Unsubscribe": "<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>",
        "Precedence": "list",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-TM-AS-GCONF": "00",
        "X-Proofpoint-Reinject": "loops=2 maxloops=12",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDMwMDA1NSBTYWx0ZWRfX8jDAyDYbPtOE\n Eg8rmNMFA6EGZhA7uZg0FYtC9vDsNcUzUjLGExNIk3+kwyY+t8qXirKd9C1fVicTKqbsF0lz6xv\n JhPRPoqW2DUNEzFAK5fWm75SK9Gy6cu6nI2ySzSxiatxEx4tiwQAbGG8hgq5YZ3TKpBZ4ALUWTU\n x6dqeZzEl/XfKF3b0dm8JLOSjRXSqGHK3m4NORwa2eWHz38eHO0AJ009+JoR9tq1bkZN16dF9rn\n S9ho+lIanXoi19X4FAEmkT3iMPT9Vrhvzy4pNqLY/kRbyjuwOC1jh2Zl9/nNXfi8C59wjqc4Z50\n 1jnb48V85Sim/CxmKC7BIlXy0NhdCDGO32aCZXyWFP8XSC9Jt0LVhSCJ7GijVvjXWURDEp+DxqH\n ioeJL0EsSvuTM0R0rzdFgKYJlTi49/15MScXq/M183CSHa0c2MChBkN9NNK2GYlJjJT26esuTEw\n dwOMZCN0UdUF7Tf4+kA==",
        "X-Proofpoint-GUID": "iUj-YKxo3sPB2St381_RksO7wj_EEXK9",
        "X-Proofpoint-ORIG-GUID": "xI8XyEiWmMkw5kpVVqnlBb77BpNUczlI",
        "X-Authority-Analysis": "v=2.4 cv=MohiLWae c=1 sm=1 tr=0 ts=69f2edba cx=c_pps\n a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17\n a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22\n a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=LbGGMz8L2r-vpTRwWUsA:9",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-30_01,2026-04-28_01,2025-10-01_01",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n phishscore=0 adultscore=0 suspectscore=0 bulkscore=0 spamscore=0\n priorityscore=1501 malwarescore=0 clxscore=1015 lowpriorityscore=0\n impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604300055",
        "X-Spam-Status": "No, score=-0.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID,\n\tRCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1 OzLabs 8",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"
    },
    "content": "Currently, when booting a compatibility-mode KVM guest (L1) on a PowerNV\nhypervisor (L0), the guest runs with the expected processor\ncompatibility level. However, when booting a nested KVM guest (L2)\ninside the L1, QEMU derives the CPU model from the raw host PVR and\nattempts to run the nested guest at that level, instead of honoring the\ncompatibility mode of the L1.\n\nExtend host CPU compatibility capability reporting to support nested\nvirtualization on PowerNV systems (PAPR nested API v1).\n\nFor nested API v2 (PowerVM), compatibility capabilities are obtained\nfrom the hypervisor via the H_GUEST_GET_CAPABILITIES hcall. This\ninformation is not available on PowerNV systems.\n\nFor nested API v1, derive the compatibility capabilities from the L1\nguest by reading the \"cpu-version\" property from the device tree, which\nreflects the effective (logical) processor compatibility level. Map this\nvalue to the corresponding compatibility capability bitmap.\n\nIntroduce a helper to translate CPU version values into compatibility\ncapability bits and integrate it into kvmppc_get_compat_cpu_caps().\n\nThis allows userspace to query host CPU compatibility modes on both\nPowerVM and PowerNV platforms via the KVM_PPC_GET_COMPAT_CAPS ioctl.\n\nSigned-off-by: Amit Machhiwal <amachhiw@linux.ibm.com>\n---\n arch/powerpc/kvm/book3s_hv.c | 37 +++++++++++++++++++++++++++++++++++-\n 1 file changed, 36 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c\nindex d602d90111d1..25d05f1ccb72 100644\n--- a/arch/powerpc/kvm/book3s_hv.c\n+++ b/arch/powerpc/kvm/book3s_hv.c\n@@ -6516,16 +6516,51 @@ static bool kvmppc_hash_v3_possible(void)\n \treturn true;\n }\n \n+static int kvmppc_map_compat_capabilities(const __be32 cpu_version,\n+\t\t\t\t      unsigned long *capabilities)\n+{\n+\tswitch (cpu_version) {\n+\tcase PVR_ARCH_31_P11:\n+\t\t*capabilities |= H_GUEST_CAP_POWER11;\n+\t\tbreak;\n+\tcase PVR_ARCH_31:\n+\t\t*capabilities |= H_GUEST_CAP_POWER10;\n+\t\tbreak;\n+\tcase PVR_ARCH_300:\n+\t\t*capabilities |= H_GUEST_CAP_POWER9;\n+\t\tbreak;\n+\tdefault:\n+\t\treturn -EINVAL;\n+\t}\n+\n+\treturn 0;\n+}\n \n static int kvmppc_get_compat_cpu_caps(struct kvm_ppc_compat_caps *host_caps)\n {\n \n+\tstruct device_node *np;\n \tunsigned long capabilities = 0;\n+\tconst __be32 *prop = NULL;\n \tlong rc = -EINVAL;\n+\tu32 cpu_version;\n \n \tif (kvmhv_on_pseries()) {\n-\t\tif (kvmhv_is_nestedv2())\n+\t\tif (kvmhv_is_nestedv2()) {\n \t\t\trc = plpar_guest_get_capabilities(0, &capabilities);\n+\t\t} else {\n+\t\t\tfor_each_node_by_type(np, \"cpu\") {\n+\t\t\t\tprop = of_get_property(np, \"cpu-version\", NULL);\n+\t\t\t\tif (prop) {\n+\t\t\t\t\tcpu_version = be32_to_cpup(prop);\n+\t\t\t\t\tbreak;\n+\t\t\t\t}\n+\t\t\t}\n+\t\t\tif (!prop)\n+\t\t\t\treturn -EINVAL;\n+\t\t\trc = kvmppc_map_compat_capabilities(cpu_version,\n+\t\t\t\t\t\t\t\t&capabilities);\n+\t\t}\n \t\thost_caps->compat_capabilities = capabilities;\n \t}\n \n",
    "prefixes": [
        "5/6"
    ]
}