get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2216006,
    "url": "http://patchwork.ozlabs.org/api/patches/2216006/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260325164453.72127-4-pbonzini@redhat.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": "<20260325164453.72127-4-pbonzini@redhat.com>",
    "list_archive_url": null,
    "date": "2026-03-25T16:44:37",
    "name": "[PULL,03/19] treewide: replace qemu_hw_version() with QEMU_HW_VERSION",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "b204dbb822f61d24537474026722fa9a2125efae",
    "submitter": {
        "id": 2701,
        "url": "http://patchwork.ozlabs.org/api/people/2701/?format=api",
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260325164453.72127-4-pbonzini@redhat.com/mbox/",
    "series": [
        {
            "id": 497473,
            "url": "http://patchwork.ozlabs.org/api/series/497473/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=497473",
            "date": "2026-03-25T16:44:34",
            "name": "[PULL,01/19] tests/functional: preserve PYTHONPATH entries",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497473/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2216006/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2216006/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 (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=bh2zjm5z;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=XVs/j2IT;\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 4fgt7q1m4rz1xy3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 03:45:43 +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 1w5RLy-0004oL-UY; Wed, 25 Mar 2026 12:45:10 -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 <pbonzini@redhat.com>)\n id 1w5RLw-0004n9-MA\n for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:08 -0400",
            "from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pbonzini@redhat.com>)\n id 1w5RLu-0004bC-SH\n for qemu-devel@nongnu.org; Wed, 25 Mar 2026 12:45:08 -0400",
            "from mail-wm1-f70.google.com (mail-wm1-f70.google.com\n [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-480-IapqCzNyMH-qUQuL1xdv4g-1; Wed, 25 Mar 2026 12:45:04 -0400",
            "by mail-wm1-f70.google.com with SMTP id\n 5b1f17b1804b1-48532df52c5so555945e9.1\n for <qemu-devel@nongnu.org>; Wed, 25 Mar 2026 09:45:04 -0700 (PDT)",
            "from [192.168.10.48] ([151.49.85.67])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4871e5ec998sm6608935e9.6.2026.03.25.09.45.00\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 25 Mar 2026 09:45:01 -0700 (PDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1774457106;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=UUgZYDFnXbpRFKsK/7IcqnW5+bod3HtrYWPP2Q8eSRg=;\n b=bh2zjm5zsU4Gi6ljWp8w5zXDPqYKuxETzVvBJKeCxX/xP11ZfSmDabQ4BmTNuKj+LuZ0HD\n eHvO6NZm5SyWY55+3rvB1StzcKSbPcHbn3OKS5s3WecRDhNj64u8/BCdYxUCHPlljhJuxl\n pMbrF5siEstSXGFDfCzhPIbdbnH3+Ok=",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1774457103; x=1775061903; 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=UUgZYDFnXbpRFKsK/7IcqnW5+bod3HtrYWPP2Q8eSRg=;\n b=XVs/j2ITGuaU4stnOZNxaOTo/z0mKaPsyUzx4cFImSyV3GTXzAaVwRy3BEnDnmf/kx\n YxcQMzOSKHDhhd5fTJUF1uPv/qg+GCPZqStKBcrXNPq+zVKxwcJheqFYQ9k2w+RIj5Px\n Ih3o9zJSBLWtP3Pag93zyKEbc/6nOPyCifMurscbXUey+GG5tIA1YFbvgoLOWEbxpyqF\n CalerPBiy1Y3C1Z+hXxYbajWWxAFQQBVmbRA2Rj7/MtQxCEpgwdoeGy4DwKbvf7nx1QV\n gJVgG/iHiiYAzzCw9eERX4gUQX69DJ7/SZ3jwHlnqTof6cg/X2ygohrI05s72lP/KzPk\n 049A=="
        ],
        "X-MC-Unique": "IapqCzNyMH-qUQuL1xdv4g-1",
        "X-Mimecast-MFC-AGG-ID": "IapqCzNyMH-qUQuL1xdv4g_1774457104",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774457103; x=1775061903;\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=UUgZYDFnXbpRFKsK/7IcqnW5+bod3HtrYWPP2Q8eSRg=;\n b=qCel54JpthKpzH424QOt/walp+np+ypg9E6B+WwEU2akDQWUWQTmXo3SHtOW7XBObD\n EHmn1GclqrR3jkTaFVO9auReoB4gCkMSaPmFwrq+GwN3s8Gh2KIhKIR8lSJEJHmmPZKi\n Zt5MiHfiQhgFdAZQwhlxm0Y8gfgYvzA7IuRobNMYBfKBX/p6xI0jH52HQj0q8PPLlNNJ\n K3HKi/WjQhRFtgh/aCZoxgrPxlYDM5sM8xL8aIgaaVd3yX0iLICRsfsoN1ZqnxFzrecK\n lgPKVat1e68NxO/H1/fqXKJ6pAr8POO78YUvq8GwuqHvKL+xtkPXLpZbUIBYpJ1CgDOx\n WaSg==",
        "X-Gm-Message-State": "AOJu0YxsAoSxfshnuIQ/cOAT2uLCE5/oALE4qDfe5UHI1BU16EQcG0td\n uTkR7SCoSyeJNSisVnpmxXfic7TDjhLvTFO0Qgk31Pl6vxXzBDkU/9ut5gvaZ63jOq/VwgaSJaD\n aM7fhqtN4gY/18osik12v/js5R9DTZtRW21tqDxAxGdvch8N95VRFlhtVxrW/z/95a9K4FZP8Ui\n 14dTQFoi6Rv4RjqibvxQuo79qI/cM9vVZfAp1956Yn",
        "X-Gm-Gg": "ATEYQzwZU2b9uQHjxlUkY6D5rlOACJuQZdgOHcNAHwnSdxmvgmLUo7ed+Vov0gxTgr2\n X288dhoKSlloyroqstxr3HqB5DCgwjk+PEHkcDp+zvqJyDzAJ5k9AbhucLxv675HekCfvlT0U4V\n Z7oJXMo38KOGuCikDOMWv+Erj7ptpaChpgsC7DXL8b5vJqMRpzMp+4WtNnjOVP8uCMTC61lm8Pu\n Z3WnlJzGYXaYO+E8eHHHdH3NKZnIvRmKaDHrHSej7xKEJkj6TvJec3H7arsDQy0J4/pTtW9yrlP\n Zhet1ZxFyPTyQ6EB5C8ccN56UuNOYGj5xpvXxE4ZoVtOACLW1WUy+RQXipdeDlF4QoAu8HCtEjg\n 8wqaSA/ADN7QL/hgOSX1k4qwKBZ3SgYBissjqZDMsdB1HjuEKduP1KpzQu+vWyEoMTBfkZNwu9P\n SUTvekB/xmQ+C7lUj/cUl/I3w/",
        "X-Received": [
            "by 2002:a05:600c:4705:b0:485:a4de:f4f9 with SMTP id\n 5b1f17b1804b1-4871608406dmr68358185e9.27.1774457102406;\n Wed, 25 Mar 2026 09:45:02 -0700 (PDT)",
            "by 2002:a05:600c:4705:b0:485:a4de:f4f9 with SMTP id\n 5b1f17b1804b1-4871608406dmr68357455e9.27.1774457101754;\n Wed, 25 Mar 2026 09:45:01 -0700 (PDT)"
        ],
        "From": "Paolo Bonzini <pbonzini@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "=?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>",
        "Subject": "[PULL 03/19] treewide: replace qemu_hw_version() with QEMU_HW_VERSION",
        "Date": "Wed, 25 Mar 2026 17:44:37 +0100",
        "Message-ID": "<20260325164453.72127-4-pbonzini@redhat.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260325164453.72127-1-pbonzini@redhat.com>",
        "References": "<20260325164453.72127-1-pbonzini@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=170.10.133.124;\n envelope-from=pbonzini@redhat.com;\n helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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": "The version is never set on 2.5+ machine types, so qemu_hw_version() and\nqemu_set_hw_version() are not needed anymore.\n\nReviewed-by: Daniel P. Berrangé <berrange@redhat.com>\nSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>\n---\n include/hw/core/boards.h  |  6 ------\n include/qemu/hw-version.h | 18 ++++--------------\n hw/ide/core.c             |  2 +-\n hw/scsi/megasas.c         |  2 +-\n hw/scsi/scsi-bus.c        |  2 +-\n hw/scsi/scsi-disk.c       |  2 +-\n system/vl.c               |  4 ----\n target/s390x/cpu_models.c |  2 +-\n util/osdep.c              | 12 ------------\n 9 files changed, 9 insertions(+), 41 deletions(-)",
    "diff": "diff --git a/include/hw/core/boards.h b/include/hw/core/boards.h\nindex f85f31bd90d..b8dad0a1074 100644\n--- a/include/hw/core/boards.h\n+++ b/include/hw/core/boards.h\n@@ -197,11 +197,6 @@ typedef struct {\n  *    used to provide @cpu_index to socket number mapping, allowing\n  *    a machine to group CPU threads belonging to the same socket/package\n  *    Returns: socket number given cpu_index belongs to.\n- * @hw_version:\n- *    Value of QEMU_VERSION when the machine was added to QEMU.\n- *    Set only by old machines because they need to keep\n- *    compatibility on code that exposed QEMU_VERSION to guests in\n- *    the past (and now use qemu_hw_version()).\n  * @possible_cpu_arch_ids:\n  *    Returns an array of @CPUArchId architecture-dependent CPU IDs\n  *    which includes CPU IDs for present and possible to hotplug CPUs.\n@@ -297,7 +292,6 @@ struct MachineClass {\n     const char *default_display;\n     const char *default_nic;\n     GPtrArray *compat_props;\n-    const char *hw_version;\n     ram_addr_t default_ram_size;\n     const char *default_cpu_type;\n     bool default_kernel_irqchip_split;\ndiff --git a/include/qemu/hw-version.h b/include/qemu/hw-version.h\nindex 730a8c904d9..ce318cd8435 100644\n--- a/include/qemu/hw-version.h\n+++ b/include/qemu/hw-version.h\n@@ -1,5 +1,5 @@\n /*\n- * QEMU \"hardware version\" machinery\n+ * QEMU \"hardware version\" constant\n  *\n  * This work is licensed under the terms of the GNU GPL, version 2 or later.\n  * See the COPYING file in the top-level directory.\n@@ -8,20 +8,10 @@\n #define QEMU_HW_VERSION_H\n \n /*\n- * Starting on QEMU 2.5, qemu_hw_version() returns \"2.5+\" by default\n- * instead of QEMU_VERSION, so setting hw_version on MachineClass\n- * is no longer mandatory.\n- *\n- * Do NOT change this string, or it will break compatibility on all\n- * machine classes that don't set hw_version.\n+ * Starting on QEMU 2.5, devices with a version string in their\n+ * identification data return \"2.5+\" instead of QEMU_VERSION.  Do\n+ * NOT change this string as it is visible to guests.\n  */\n #define QEMU_HW_VERSION \"2.5+\"\n \n-/* QEMU \"hardware version\" setting. Used to replace code that exposed\n- * QEMU_VERSION to guests in the past and need to keep compatibility.\n- * Do not use qemu_hw_version() in new code.\n- */\n-void qemu_set_hw_version(const char *);\n-const char *qemu_hw_version(void);\n-\n #endif\ndiff --git a/hw/ide/core.c b/hw/ide/core.c\nindex b45abf067b2..d6719dbf31d 100644\n--- a/hw/ide/core.c\n+++ b/hw/ide/core.c\n@@ -2660,7 +2660,7 @@ int ide_init_drive(IDEState *s, IDEDevice *dev, IDEDriveKind kind, Error **errp)\n     if (dev->version) {\n         pstrcpy(s->version, sizeof(s->version), dev->version);\n     } else {\n-        pstrcpy(s->version, sizeof(s->version), qemu_hw_version());\n+        pstrcpy(s->version, sizeof(s->version), QEMU_HW_VERSION);\n     }\n \n     ide_reset(s);\ndiff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c\nindex f62e420a91e..0276886d594 100644\n--- a/hw/scsi/megasas.c\n+++ b/hw/scsi/megasas.c\n@@ -782,7 +782,7 @@ static int megasas_ctrl_get_info(MegasasState *s, MegasasCmd *cmd)\n \n     memcpy(info.product_name, base_class->product_name, 24);\n     snprintf(info.serial_number, 32, \"%s\", s->hba_serial);\n-    snprintf(info.package_version, 0x60, \"%s-QEMU\", qemu_hw_version());\n+    snprintf(info.package_version, 0x60, \"%s-QEMU\", QEMU_HW_VERSION);\n     memcpy(info.image_component[0].name, \"APP\", 3);\n     snprintf(info.image_component[0].version, 10, \"%s-QEMU\",\n              base_class->product_version);\ndiff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c\nindex 9b8656dd832..1a6b181b9d6 100644\n--- a/hw/scsi/scsi-bus.c\n+++ b/hw/scsi/scsi-bus.c\n@@ -703,7 +703,7 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *r)\n         r->buf[7] = 0x10 | (r->req.bus->info->tcq ? 0x02 : 0); /* Sync, TCQ.  */\n         memcpy(&r->buf[8], \"QEMU    \", 8);\n         memcpy(&r->buf[16], \"QEMU TARGET     \", 16);\n-        pstrcpy((char *) &r->buf[32], 4, qemu_hw_version());\n+        pstrcpy((char *) &r->buf[32], 4, QEMU_HW_VERSION);\n     }\n     return true;\n }\ndiff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c\nindex a5201855352..5ba5b46c4f4 100644\n--- a/hw/scsi/scsi-disk.c\n+++ b/hw/scsi/scsi-disk.c\n@@ -2543,7 +2543,7 @@ static void scsi_realize(SCSIDevice *dev, Error **errp)\n     }\n \n     if (!s->version) {\n-        s->version = g_strdup(qemu_hw_version());\n+        s->version = g_strdup(QEMU_HW_VERSION);\n     }\n     if (!s->vendor) {\n         s->vendor = g_strdup(\"QEMU\");\ndiff --git a/system/vl.c b/system/vl.c\nindex 38d7b849e0a..246623b3196 100644\n--- a/system/vl.c\n+++ b/system/vl.c\n@@ -2212,10 +2212,6 @@ static void qemu_create_machine(QDict *qdict)\n \n     cpu_exec_init_all();\n \n-    if (machine_class->hw_version) {\n-        qemu_set_hw_version(machine_class->hw_version);\n-    }\n-\n     /*\n      * Get the default machine options from the machine if it is not already\n      * specified either by the configuration file or by the command line.\ndiff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c\nindex 954a7a99a9e..0b88868289b 100644\n--- a/target/s390x/cpu_models.c\n+++ b/target/s390x/cpu_models.c\n@@ -955,7 +955,7 @@ static void s390_qemu_cpu_model_class_init(ObjectClass *oc, const void *data)\n \n     xcc->is_migration_safe = true;\n     xcc->desc = g_strdup_printf(\"QEMU Virtual CPU version %s\",\n-                                qemu_hw_version());\n+                                QEMU_HW_VERSION);\n }\n \n static void s390_max_cpu_model_class_init(ObjectClass *oc, const void *data)\ndiff --git a/util/osdep.c b/util/osdep.c\nindex 000e7daac8b..4a8b8b5a90f 100644\n--- a/util/osdep.c\n+++ b/util/osdep.c\n@@ -31,8 +31,6 @@\n #include \"qemu/hw-version.h\"\n #include \"monitor/monitor.h\"\n \n-static const char *hw_version = QEMU_HW_VERSION;\n-\n int socket_set_cork(int fd, int v)\n {\n #if defined(SOL_TCP) && defined(TCP_CORK)\n@@ -533,16 +531,6 @@ ssize_t qemu_send_full(int s, const void *buf, size_t count)\n     return total;\n }\n \n-void qemu_set_hw_version(const char *version)\n-{\n-    hw_version = version;\n-}\n-\n-const char *qemu_hw_version(void)\n-{\n-    return hw_version;\n-}\n-\n #ifdef _WIN32\n static void socket_cleanup(void)\n {\n",
    "prefixes": [
        "PULL",
        "03/19"
    ]
}