get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2195854,
    "url": "http://patchwork.ozlabs.org/api/patches/2195854/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260212062522.99565-26-anisinha@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": "<20260212062522.99565-26-anisinha@redhat.com>",
    "list_archive_url": null,
    "date": "2026-02-12T06:25:09",
    "name": "[v4,25/31] hw/hyperv/vmbus: add support for confidential guest reset",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "9b65ded185adb3047305daef8c1cce39106ba354",
    "submitter": {
        "id": 86030,
        "url": "http://patchwork.ozlabs.org/api/people/86030/?format=api",
        "name": "Ani Sinha",
        "email": "anisinha@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260212062522.99565-26-anisinha@redhat.com/mbox/",
    "series": [
        {
            "id": 491935,
            "url": "http://patchwork.ozlabs.org/api/series/491935/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491935",
            "date": "2026-02-12T06:24:45",
            "name": "Introduce support for confidential guest reset (x86)",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/491935/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195854/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195854/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=il9O366H;\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=QqM8fhiD;\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 4fBQPd1SKnz1xvb\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 17:29:25 +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 1vqQB7-0001HC-Kh; Thu, 12 Feb 2026 01:27:53 -0500",
            "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 <anisinha@redhat.com>)\n id 1vqQAR-0000OT-SJ\n for qemu-devel@nongnu.org; Thu, 12 Feb 2026 01:27:13 -0500",
            "from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <anisinha@redhat.com>)\n id 1vqQAQ-0005Lp-D6\n for qemu-devel@nongnu.org; Thu, 12 Feb 2026 01:27:11 -0500",
            "from mail-pj1-f72.google.com (mail-pj1-f72.google.com\n [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-683-MsHdjDvwPmmjZQ3aov2p7g-1; Thu, 12 Feb 2026 01:27:08 -0500",
            "by mail-pj1-f72.google.com with SMTP id\n 98e67ed59e1d1-353c9d644b0so4403478a91.2\n for <qemu-devel@nongnu.org>; Wed, 11 Feb 2026 22:27:08 -0800 (PST)",
            "from rhel9-box.lan ([122.164.27.113])\n by smtp.googlemail.com with ESMTPSA id\n 98e67ed59e1d1-3567e7d95d8sm4894122a91.2.2026.02.11.22.27.04\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 11 Feb 2026 22:27:06 -0800 (PST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1770877629;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=2uA6s98chAA/AAmOAgTNuehQ1wNW/fEWldjPI7yvg0g=;\n b=il9O366HAuYlFZmYZU9E1XtqfVAeNSXG9QY9MJ3WNResd6uQW2yfqJF6rfhTAINNRScGe9\n Q6WJYXpOlcKSd7+1M8wkZRp5Z+vgmsPFPEo411x48irhD1vDQ9Ed2GWbnzI0QLAQpKFeVy\n yxDCcbu6kUcTErwn1/qDXr1QTkpZjhs=",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1770877627; x=1771482427; 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=2uA6s98chAA/AAmOAgTNuehQ1wNW/fEWldjPI7yvg0g=;\n b=QqM8fhiDpp/x2o5VPFtypq3indXGb/S34C4fjYUDwhppN5Bqu4OEu7LORjoWe8ZaZ4\n 5CtRfIfwNuqoLpryiSNK7KRY8jRrNGLOl19rCiap0E0rogh8GYTzgMBlMXtmEE1zlXq3\n /E7yhdXmSobPghAUuu5nZ7xRiReYO5yAJADuKPTTFgta2HC8AxEp1+L9RfJhrj18rMK4\n gLY/304ZMipVGtf3gpdOgiJBYISQvOouL3gLMW4MlWaKF8LNM3GmkOqTow6F96RkhPNm\n wjDcqOf+cas4FrsKcOf+MuJ2AbT7xNkMV4JccRWcedHTgmxURG3IDJOkixOx6J1/y+01\n +Z2w=="
        ],
        "X-MC-Unique": "MsHdjDvwPmmjZQ3aov2p7g-1",
        "X-Mimecast-MFC-AGG-ID": "MsHdjDvwPmmjZQ3aov2p7g_1770877627",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770877627; x=1771482427;\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=2uA6s98chAA/AAmOAgTNuehQ1wNW/fEWldjPI7yvg0g=;\n b=l+bpxENoWDUlPQug4bSDDCYAIChpu/r/OKzrcyuMiCUT/i8t68UGcXwSnAHjWhurco\n L834y7haztt+l3RfFchFjP1w461hUfJaJVWrWpdxXSpBp/Ui5gzOosIqgph1qBHevgXm\n f8jZ4VpJHSIWcbOUS+Y8K5ZHgXJMZWidYv4GoxwBwQdAAR6zrh7y0mB3M7KiaXogeZEm\n k2bGyL08FJGjyLbYR+RGBGPfhAZGb8KwbYYYHdoU+CzimyfeUCN6bx1ufGlEELIE24ht\n 7yyGIQQEvpFDN0VLUKry8bkh1PaBBCEsiByxoxZfXY7Zi+O9xPBm7gtW3D/niPchmxxc\n V+4w==",
        "X-Forwarded-Encrypted": "i=1;\n AJvYcCVG/gaulgM2byBndEplMDBm7wQbWkJp50T7plipW6iaZpXwRckD7OAUstX6Xc4JtMZ9BCeiu6zzdSVm@nongnu.org",
        "X-Gm-Message-State": "AOJu0YwEfRtl3y65WcWE+x4TaGCXbbh9e9hdktjDIE8rjN5PCIGArSIm\n 9Wshr3WC8ljTV0hpe70XOIYOLVPZZU8OxCNA5MJCDK+maDNH5xX4jouw+uQylW58otUGoq515xj\n XjxNy2GtFGWr160ofczZe+H5oZGUwhFvbQu+wFk1+WWtZdGugrOhXfewf",
        "X-Gm-Gg": "AZuq6aLmWjmt2+VqxXXBIrv90Zil2zqi78vWVpp5ZIG/hXvZCahjE99INyYj5sdeXsD\n BVG7IIglAMopdHGKQ6quIDiDwRNsKpA7xgqYWQ0YFX8lYZVOQqiFkcRveU46ZCip1L2swsJURFI\n zdw29cutAwq7lHdE/02MvvhZCS6UqfzMSXwIx7PxokKFcOzyZ37A60XJ+wLAOC4DxehY+VaMPOw\n d6A+3EUzVvJIEkTrwqVGLOUk/oYshBvaQ739imFhVUa0uODo4fMVjkUfGQtW2b4z9GhWz/hBWQn\n Ds9kxlbbVXhL/DXsX9ubtKcoUc1tGx7itoZhB+p5KZB9wT7NE6U29xh7xx+AgzsAl4g8wsWlmQv\n qolwGOit2eWcdWt6y/laigSjXfWRsLhQ4ZREe1qtGPJnDSIV3SGTMNRw=",
        "X-Received": [
            "by 2002:a17:90b:1b0a:b0:343:e2ba:e8be with SMTP id\n 98e67ed59e1d1-3568f307a58mr1581638a91.10.1770877627321;\n Wed, 11 Feb 2026 22:27:07 -0800 (PST)",
            "by 2002:a17:90b:1b0a:b0:343:e2ba:e8be with SMTP id\n 98e67ed59e1d1-3568f307a58mr1581626a91.10.1770877626939;\n Wed, 11 Feb 2026 22:27:06 -0800 (PST)"
        ],
        "From": "Ani Sinha <anisinha@redhat.com>",
        "To": "\"Maciej S. Szmigiero\" <maciej.szmigiero@oracle.com>",
        "Cc": "kraxel@redhat.com, Ani Sinha <anisinha@redhat.com>, qemu-devel@nongnu.org",
        "Subject": "[PATCH v4 25/31] hw/hyperv/vmbus: add support for confidential guest\n reset",
        "Date": "Thu, 12 Feb 2026 11:55:09 +0530",
        "Message-ID": "<20260212062522.99565-26-anisinha@redhat.com>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20260212062522.99565-1-anisinha@redhat.com>",
        "References": "<20260212062522.99565-1-anisinha@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=170.10.129.124;\n envelope-from=anisinha@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": "On confidential guests when the KVM virtual machine file descriptor changes as\na part of the reset process, event file descriptors needs to be reassociated\nwith the new KVM VM file descriptor. This is achieved with the help of a\ncallback handler that gets called when KVM VM file descriptor changes during\nthe confidential guest reset process.\n\nThis patch is tested on non-confidential platform only.\n\nSigned-off-by: Ani Sinha <anisinha@redhat.com>\n---\n hw/hyperv/trace-events |  1 +\n hw/hyperv/vmbus.c      | 37 +++++++++++++++++++++++++++++++++++++\n 2 files changed, 38 insertions(+)",
    "diff": "diff --git a/hw/hyperv/trace-events b/hw/hyperv/trace-events\nindex 7963c215b1..d8c96f18e9 100644\n--- a/hw/hyperv/trace-events\n+++ b/hw/hyperv/trace-events\n@@ -16,6 +16,7 @@ vmbus_gpadl_torndown(uint32_t gpadl_id) \"gpadl #%d\"\n vmbus_open_channel(uint32_t chan_id, uint32_t gpadl_id, uint32_t target_vp) \"channel #%d gpadl #%d target vp %d\"\n vmbus_channel_open(uint32_t chan_id, uint32_t status) \"channel #%d status %d\"\n vmbus_close_channel(uint32_t chan_id) \"channel #%d\"\n+vmbus_handle_vmfd_change(void) \"\"\n \n # hv-balloon\n hv_balloon_state_change(const char *tostr) \"-> %s\"\ndiff --git a/hw/hyperv/vmbus.c b/hw/hyperv/vmbus.c\nindex c5bab5d245..64abe4c4c1 100644\n--- a/hw/hyperv/vmbus.c\n+++ b/hw/hyperv/vmbus.c\n@@ -20,6 +20,7 @@\n #include \"hw/hyperv/vmbus-bridge.h\"\n #include \"hw/core/sysbus.h\"\n #include \"exec/cpu-common.h\"\n+#include \"system/kvm.h\"\n #include \"exec/target_page.h\"\n #include \"trace.h\"\n \n@@ -248,6 +249,12 @@ struct VMBus {\n      * interrupt page\n      */\n     EventNotifier notifier;\n+\n+    /*\n+     * Notifier to inform when vmfd is changed as a part of confidential guest\n+     * reset mechanism.\n+     */\n+    NotifierWithReturn vmbus_vmfd_change_notifier;\n };\n \n static bool gpadl_full(VMBusGpadl *gpadl)\n@@ -2347,6 +2354,33 @@ static void vmbus_dev_unrealize(DeviceState *dev)\n     free_channels(vdev);\n }\n \n+/*\n+ * If the KVM fd changes because of VM reset in confidential guests,\n+ * reassociate event fd with the new KVM fd.\n+ */\n+static int vmbus_handle_vmfd_change(NotifierWithReturn *notifier,\n+                                    void *data, Error** errp)\n+{\n+    VMBus *vmbus = container_of(notifier, VMBus,\n+                                vmbus_vmfd_change_notifier);\n+    int ret = 0;\n+\n+    /* we are not interested in pre vmfd change notification */\n+    if (((VmfdChangeNotifier *)data)->pre) {\n+        return 0;\n+    }\n+\n+    ret = hyperv_set_event_flag_handler(VMBUS_EVENT_CONNECTION_ID,\n+                                            &vmbus->notifier);\n+    /* if we are only using userland event handler, it may already exist */\n+    if (ret != 0 && ret != -EEXIST) {\n+        error_setg(errp, \"hyperv set event handler failed with %d\", ret);\n+    }\n+\n+    trace_vmbus_handle_vmfd_change();\n+    return ret;\n+}\n+\n static const Property vmbus_dev_props[] = {\n     DEFINE_PROP_UUID(\"instanceid\", VMBusDevice, instanceid),\n };\n@@ -2429,6 +2463,9 @@ static void vmbus_realize(BusState *bus, Error **errp)\n         goto clear_event_notifier;\n     }\n \n+    vmbus->vmbus_vmfd_change_notifier.notify = vmbus_handle_vmfd_change;\n+    kvm_vmfd_add_change_notifier(&vmbus->vmbus_vmfd_change_notifier);\n+\n     return;\n \n clear_event_notifier:\n",
    "prefixes": [
        "v4",
        "25/31"
    ]
}