Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2216882/?format=api
{ "id": 2216882, "url": "http://patchwork.ozlabs.org/api/patches/2216882/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260327111700.795099-13-peter.maydell@linaro.org/", "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": "<20260327111700.795099-13-peter.maydell@linaro.org>", "list_archive_url": null, "date": "2026-03-27T11:16:07", "name": "[v2,12/65] hw/intc/arm_gicv5: Implement gicv5_class_name()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "38a0a8e182aed16a3a35c65c41e4487358ee964b", "submitter": { "id": 5111, "url": "http://patchwork.ozlabs.org/api/people/5111/?format=api", "name": "Peter Maydell", "email": "peter.maydell@linaro.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260327111700.795099-13-peter.maydell@linaro.org/mbox/", "series": [ { "id": 497750, "url": "http://patchwork.ozlabs.org/api/series/497750/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=497750", "date": "2026-03-27T11:16:25", "name": "arm: Implement an emulation of GICv5 interrupt controller", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/497750/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2216882/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2216882/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@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=fEuIzeT9;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhypc6GLbz1y1x\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 22:19:36 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1w65Bw-0006eF-Q1; Fri, 27 Mar 2026 07:17:28 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <peter.maydell@linaro.org>)\n id 1w65Bn-0006RX-46\n for qemu-devel@nongnu.org; Fri, 27 Mar 2026 07:17:19 -0400", "from mail-wr1-x436.google.com ([2a00:1450:4864:20::436])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <peter.maydell@linaro.org>)\n id 1w65Bj-0007r6-M9\n for qemu-devel@nongnu.org; Fri, 27 Mar 2026 07:17:17 -0400", "by mail-wr1-x436.google.com with SMTP id\n ffacd0b85a97d-43b527ac5d0so1082577f8f.2\n for <qemu-devel@nongnu.org>; Fri, 27 Mar 2026 04:17:15 -0700 (PDT)", "from lanath.. (wildly.archaic.org.uk. [81.2.115.145])\n by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43b919cf2b2sm15484227f8f.18.2026.03.27.04.17.12\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 27 Mar 2026 04:17:13 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774610234; x=1775215034; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=eAtjWu5Nao9N8oE0IDX5NSQrIVlRkYa+wCz3k4lXaJM=;\n b=fEuIzeT9Afbcvy0S3qyxsdA5cq9ornsK+B3znKGz5jeRTKv45e5iAvl45RZwuwoKiK\n pznkZnQXh+/VpFAx04f4OvgudqdxBRd12ewJfA9mr2woV8f+84O2p78CjMruaq4K9+fl\n JzWbjGykapfGMbnb9n1vsdzdEpBHq07qqa13MsEGxT+fTvhJXPoc/44rvhipFm359Vq+\n bfIH5DK/zP/UjwxcgCoUh53cU/ZPHUp6jVmsG1w0YdbimOxXzfF1XjWwIRdH2Bse8R4m\n VL/98BhzemkhCwddhhZfDf7+BlysPFcgj8nOt5WhspIfj3GuRyOR4mGbg8i3sQm2T1NW\n ibfw==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774610234; x=1775215034;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=eAtjWu5Nao9N8oE0IDX5NSQrIVlRkYa+wCz3k4lXaJM=;\n b=q/xK8UvztiROebO+VgsQKnrSHEfE0yD6mjANkum7/Nx8qbW4bOKjopVYI1PlMmUALG\n AgNHNjuXqVjJQjUO8GqS8UYfiGqCuCi+SG+82lPpyfSV+YbW56qB3ffeDWSeI5WU/R20\n xgDMwa46yz8gYwGelOl8iAj/KLwHInzOIo12oQqS7sP259CRxeYpw3emyew/oUCqE1ob\n huKElT01JiAs6gFACF9U3VbY6UhqODLhfRXbbV7peSOFiEPrd82qa+WoWiiPBw1GQNEr\n 20O4qcjMpWfyibSFHeLaTQAldD2MdFp0CKWXq7U3T1QeaawZ6eNKQK0N2gRfSknL84Os\n /G3g==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCVGv6AWDfc1AUA2TQv/9PPg5hWMtrXkUkfS1VHE8KaMStwuvCNsxZigKq6+wa2Kh8k9obZ482LO5Sn8@nongnu.org", "X-Gm-Message-State": "AOJu0Yx2JW25Q0lPbPgqnLn7Y/J4BZCwSf+daTj4R9wP0yRI4BuEYn4Z\n 6K8degHX7N7ezV8bPZ+3cuu6+cH0UpFx+g+6SXRQSsfy3ESl4TuEm1YOTpDjYIOVgxQ=", "X-Gm-Gg": "ATEYQzwUE7IPwUdhcz6PbZTJ06qKVQ1hE+SC1SkGukP7ipcIYiBShy7En4MsJt1vuPG\n 7UthDjKf7a4zzhsDt+LcUBFJduTbZdG0rXkWn10Stu2v5RGiBaVEKX9tAqj9JPPW7YWXkN0xSk5\n hcN4FDtB9NEW3/Ci/vYMAQfG2yMvrsAecrz+tJQwxOk4i545bDmDMKasoHt7L1pTW5j2rSC8vEu\n eGrzaD6hIzDQDgtt0RNisF2ToOKG/3NTqdhgTNmkIKRUwP5izKRdU8qz3TYwFraERiXF+SWxcz9\n RBWJbgXcnZXagBCxVSCEBhCSqZChVngB1s4ZgrfZrKeeEvQlKD9jwqlWI8cBlLyStmGfTuNlU9c\n ezFgz15fLSlmlUUjMmV+RaDmRAWmF5g+KazXT9QoXbznChSrinfF3qe6TTaU+g2h/jLCd7XEStW\n qhYR7qTPVeBAhTcWIThWCi5v0oAHanILp/5NW2wftlNRPwl2l5P5zkNt2ZpE2iGRf9P4PvpllPv\n IHHCFVbrhiE3CoLahhaMuBTZkn+GaA=", "X-Received": "by 2002:a05:6000:2dca:b0:43b:3c42:802a with SMTP id\n ffacd0b85a97d-43b9ea4aca8mr3225114f8f.32.1774610233649;\n Fri, 27 Mar 2026 04:17:13 -0700 (PDT)", "From": "Peter Maydell <peter.maydell@linaro.org>", "To": "qemu-arm@nongnu.org,\n\tqemu-devel@nongnu.org", "Cc": "Jonathan Cameron <jonathan.cameron@huawei.com>", "Subject": "[PATCH v2 12/65] hw/intc/arm_gicv5: Implement gicv5_class_name()", "Date": "Fri, 27 Mar 2026 11:16:07 +0000", "Message-ID": "<20260327111700.795099-13-peter.maydell@linaro.org>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260327111700.795099-1-peter.maydell@linaro.org>", "References": "<20260327111700.795099-1-peter.maydell@linaro.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2a00:1450:4864:20::436;\n envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x436.google.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://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 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "Implement a gicv5_class_name() function that does the same job as\ngicv3_class_name(): allows board code to get the correct QOM type for\nthe GIC at runtime depending on whether KVM is enabled or not.\n\nFor the GICv5, we don't yet implement KVM support, so the KVM-enabled\ncodepath is always an error.\n\nSigned-off-by: Peter Maydell <peter.maydell@linaro.org>\nReviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>\n---\n hw/intc/arm_gicv5_common.c | 12 ++++++++++++\n include/hw/intc/arm_gicv5_common.h | 10 ++++++++++\n 2 files changed, 22 insertions(+)", "diff": "diff --git a/hw/intc/arm_gicv5_common.c b/hw/intc/arm_gicv5_common.c\nindex 29cc96917e..7f15e3c7c8 100644\n--- a/hw/intc/arm_gicv5_common.c\n+++ b/hw/intc/arm_gicv5_common.c\n@@ -11,6 +11,8 @@\n #include \"hw/core/qdev-properties.h\"\n #include \"qapi/error.h\"\n #include \"trace.h\"\n+#include \"qemu/error-report.h\"\n+#include \"system/kvm.h\"\n \n OBJECT_DEFINE_ABSTRACT_TYPE(GICv5Common, gicv5_common, ARM_GICV5_COMMON, SYS_BUS_DEVICE)\n \n@@ -157,3 +159,13 @@ static void gicv5_common_class_init(ObjectClass *oc, const void *data)\n dc->realize = gicv5_common_realize;\n device_class_set_props(dc, arm_gicv5_common_properties);\n }\n+\n+const char *gicv5_class_name(void)\n+{\n+ /* When we implement KVM GICv5 we might return \"kvm-arm-gicv5\" here. */\n+ if (kvm_enabled()) {\n+ error_report(\"Userspace GICv5 is not supported with KVM\");\n+ exit(1);\n+ }\n+ return \"arm-gicv5\";\n+}\ndiff --git a/include/hw/intc/arm_gicv5_common.h b/include/hw/intc/arm_gicv5_common.h\nindex 900af53b0f..88e1b4d73d 100644\n--- a/include/hw/intc/arm_gicv5_common.h\n+++ b/include/hw/intc/arm_gicv5_common.h\n@@ -149,4 +149,14 @@ static inline bool gicv5_domain_implemented(GICv5Common *cs, GICv5Domain domain)\n return cs->implemented_domains & (1 << domain);\n }\n \n+/**\n+ * gicv5_class_name\n+ *\n+ * Return name of GICv5 class to use depending on whether KVM acceleration is\n+ * in use. May throw an error if the chosen implementation is not available.\n+ *\n+ * Returns: class name to use\n+ */\n+const char *gicv5_class_name(void);\n+\n #endif\n", "prefixes": [ "v2", "12/65" ] }