get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2195636,
    "url": "http://patchwork.ozlabs.org/api/patches/2195636/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260211152508.732487-5-berrange@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": "<20260211152508.732487-5-berrange@redhat.com>",
    "list_archive_url": null,
    "date": "2026-02-11T15:24:45",
    "name": "[v6,04/27] monitor: initialize global data from a constructor",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "6174dbe903081594d5464fd2a159ff0aa22e49ba",
    "submitter": {
        "id": 2694,
        "url": "http://patchwork.ozlabs.org/api/people/2694/?format=api",
        "name": "Daniel P. Berrangé",
        "email": "berrange@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260211152508.732487-5-berrange@redhat.com/mbox/",
    "series": [
        {
            "id": 491862,
            "url": "http://patchwork.ozlabs.org/api/series/491862/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491862",
            "date": "2026-02-11T15:24:41",
            "name": "util: sync error_report & qemu_log output more closely",
            "version": 6,
            "mbox": "http://patchwork.ozlabs.org/series/491862/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195636/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195636/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=AlvWkLh2;\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 4fB2P25CBlz1xtr\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 02:27:34 +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 1vqC6H-0004j8-3H; Wed, 11 Feb 2026 10:25:57 -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 <berrange@redhat.com>)\n id 1vqC68-0004ZL-SZ\n for qemu-devel@nongnu.org; Wed, 11 Feb 2026 10:25:50 -0500",
            "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 <berrange@redhat.com>)\n id 1vqC66-0005hn-V9\n for qemu-devel@nongnu.org; Wed, 11 Feb 2026 10:25:48 -0500",
            "from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-594-uSHY1e4TMZiN01Zdm3jaxg-1; Wed,\n 11 Feb 2026 10:25:41 -0500",
            "from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 0D93F180034A; Wed, 11 Feb 2026 15:25:39 +0000 (UTC)",
            "from toolbx.redhat.com (unknown [10.45.227.9])\n by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 125A130001A8; Wed, 11 Feb 2026 15:25:33 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1770823546;\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=kAnXty8ojb0QvYCAJwvtMMolNwPYeQ0lJZK1O5DK5TM=;\n b=AlvWkLh2q9kvkujtvhxT6wWaNJYREeGTNSINBGVu23LwgwA316cLQA1TY+YuSRw5D1UQ9r\n ogEC/9Dfo07iaR5hQd75LyMgGKEQdO6vg+73Tn/3KveZF+QVLk6GHclddNqyUZF8Mq8pPs\n hd/Ba8ZLDsEOrBkjq8OhlZOMMiCYD5Y=",
        "X-MC-Unique": "uSHY1e4TMZiN01Zdm3jaxg-1",
        "X-Mimecast-MFC-AGG-ID": "uSHY1e4TMZiN01Zdm3jaxg_1770823539",
        "From": "=?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "Manos Pitsidianakis <manos.pitsidianakis@linaro.org>,\n Stefan Weil <sw@weilnetz.de>, \"Dr. David Alan Gilbert\" <dave@treblig.org>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>, devel@lists.libvirt.org,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, =?utf-8?q?Marc?=\n\t=?utf-8?q?-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n Hanna Reitz <hreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>,\n qemu-block@nongnu.org, qemu-rust@nongnu.org,\n Paolo Bonzini <pbonzini@redhat.com>, Markus Armbruster <armbru@redhat.com>,\n Gerd Hoffmann <kraxel@redhat.com>,\n =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>,\n Christian Schoenebeck <qemu_oss@crudebyte.com>,\n Richard Henderson <richard.henderson@linaro.org>",
        "Subject": "[PATCH v6 04/27] monitor: initialize global data from a constructor",
        "Date": "Wed, 11 Feb 2026 15:24:45 +0000",
        "Message-ID": "<20260211152508.732487-5-berrange@redhat.com>",
        "In-Reply-To": "<20260211152508.732487-1-berrange@redhat.com>",
        "References": "<20260211152508.732487-1-berrange@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.4",
        "Received-SPF": "pass client-ip=170.10.133.124;\n envelope-from=berrange@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_H2=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-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": "Some monitor functions, most notably, monitor_cur() rely on global\ndata being initialized by 'monitor_init_globals()'. The latter is\ncalled relatively late in startup. If code triggers error_report()\nbefore monitor_init_globals() is called, QEMU will abort when\naccessing the uninitialized monitor mutex.\n\nThe critical monitor global data must be initialized from a\nconstructor function, to improve the guarantee that it is done\nbefore any possible calls to monitor_cur(). Not only that, but\nthe constructor must be marked to run before the default\nconstructor in case any of them trigger error reporting.\n\nNote in particular that the RCU constructor will spawn a background\nthread so we might even have non-constructor QEMU code running\nconcurrently with other constructors.\n\nAs a general note, constructors should be extrememly careful\nabout what QEMU code they invoke, as it cannot be guaranteed that\nthe process is fully initialized and so not all normal QEMU API\nrules apply.\n\nReviewed-by: Richard Henderson <richard.henderson@linaro.org>\nReviewed-by: Dr. David Alan Gilbert <dave@treblig.org>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\nFixes: e69ee454b5f9 (monitor: Make current monitor a per-coroutine property)\nSigned-off-by: Daniel P. Berrangé <berrange@redhat.com>\n---\n monitor/monitor.c | 14 +++++++++-----\n 1 file changed, 9 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/monitor/monitor.c b/monitor/monitor.c\nindex 1273eb7260..dd2c45ded0 100644\n--- a/monitor/monitor.c\n+++ b/monitor/monitor.c\n@@ -708,18 +708,22 @@ void monitor_cleanup(void)\n     }\n }\n \n-static void monitor_qapi_event_init(void)\n+/*\n+ * Initialize static vars that have no deps on external\n+ * module initialization, and are required for external\n+ * functions to call things like monitor_cur()\n+ */\n+static void __attribute__((__constructor__(QEMU_CONSTRUCTOR_EARLY)))\n+monitor_init_static(void)\n {\n+    qemu_mutex_init(&monitor_lock);\n+    coroutine_mon = g_hash_table_new(NULL, NULL);\n     monitor_qapi_event_state = g_hash_table_new(qapi_event_throttle_hash,\n                                                 qapi_event_throttle_equal);\n }\n \n void monitor_init_globals(void)\n {\n-    monitor_qapi_event_init();\n-    qemu_mutex_init(&monitor_lock);\n-    coroutine_mon = g_hash_table_new(NULL, NULL);\n-\n     /*\n      * The dispatcher BH must run in the main loop thread, since we\n      * have commands assuming that context.  It would be nice to get\n",
    "prefixes": [
        "v6",
        "04/27"
    ]
}