Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2218137/?format=api
{ "id": 2218137, "url": "http://patchwork.ozlabs.org/api/patches/2218137/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260331131514.21152-4-philmd@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": "<20260331131514.21152-4-philmd@linaro.org>", "list_archive_url": null, "date": "2026-03-31T13:15:05", "name": "[PULL,03/11] target/mips: save CP0 timer in vmstate", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "35c16dbb39ac5baa4497325f2fa8c9913c4684af", "submitter": { "id": 85046, "url": "http://patchwork.ozlabs.org/api/people/85046/?format=api", "name": "Philippe Mathieu-Daudé", "email": "philmd@linaro.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260331131514.21152-4-philmd@linaro.org/mbox/", "series": [ { "id": 498197, "url": "http://patchwork.ozlabs.org/api/series/498197/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=498197", "date": "2026-03-31T13:15:02", "name": "[PULL,01/11] ppc/pnv: generate dtb after machine initialization is complete", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498197/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2218137/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2218137/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=PQomi4BE;\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 4flTD73r42z1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 01 Apr 2026 00:16:55 +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 1w7Ywm-0005rb-7m; Tue, 31 Mar 2026 09:15:56 -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 <philmd@linaro.org>) id 1w7Ywe-0005fT-Ty\n for qemu-devel@nongnu.org; Tue, 31 Mar 2026 09:15:50 -0400", "from mail-wm1-x332.google.com ([2a00:1450:4864:20::332])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1w7Ywc-00048j-1N\n for qemu-devel@nongnu.org; Tue, 31 Mar 2026 09:15:47 -0400", "by mail-wm1-x332.google.com with SMTP id\n 5b1f17b1804b1-4853e1ce427so70356665e9.3\n for <qemu-devel@nongnu.org>; Tue, 31 Mar 2026 06:15:45 -0700 (PDT)", "from localhost.localdomain (43.149.216.82.rev.sfr.net.\n [82.216.149.43]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4887c884f77sm15178225e9.20.2026.03.31.06.15.42\n for <qemu-devel@nongnu.org>\n (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);\n Tue, 31 Mar 2026 06:15:43 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774962944; x=1775567744; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:from:to:cc:subject:date:message-id\n :reply-to; bh=DI7LzFR4D/yawQQLsJ8n06quUuh4C8hWMkZm7c2PHUM=;\n b=PQomi4BEueTmCatOo/sunKTKXeczDoWrAm13c8C80j7aPJ4PUv06OIf2TGuF1xF2uT\n amzw57uR91niUGVDFJSUY5YLK+pz0GPwTYhJMEkpFeUiyFo7QOL9dDb85dWZzsg/euDa\n xG2HQl/ss2VDR9sRsg6YrCVhraaV4EY09wiFlFi5bFuJzXLrAWuAEOZstwtiTtWT/lS1\n 0uU+F4zLFFObMTjdOY1eTjwpiaKs3YMmQrLoh9xBVdsSlnKWxBhKDiz7VKcMgZ0ROK4y\n AxVGNz9k26KebOnk8kELb6jHmGQ0gvGelVk3qBqpI6aeAwRs4zII/U8vEuEkM63g9gf5\n +Paw==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774962944; x=1775567744;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=DI7LzFR4D/yawQQLsJ8n06quUuh4C8hWMkZm7c2PHUM=;\n b=MoX4k97i2hKCql4G+COxw2l1xTF7M1PCsr6Eyhp2pi9ntNhuPCMq5/fBZRJgbEoZ4u\n bDS7nlEGjkqmdFgQedRXbvjkMuK+5ojYMCNqCnsTW4aIlEExzm3RpZNb+kZwu1ISri50\n Zj5s6o3MOstXVYxSX9r8AIO1Jz1csPmP1eOp6hJU+/J/XYM7AlwBS9OWeEp8ZuG1hwsv\n 4idQpDGcWJ1RfGkG1mL5lRD4xVss8r1e+aWAWZtaSfaU6KhdDTrhwEZAtiw6lMpbulbf\n idLJ2q1l8LSz3tWQkGBqorbCF8/2FCzyMoO4n4FT5YPG4MN+ULKw1Lt3frtceqJZ+lcK\n 2kQw==", "X-Gm-Message-State": "AOJu0YzAzZvsvKvfFvZc/JvypzZnBn/zJsji45gXYV0DyZ93EC+AlpWB\n dmkymLXGSWmohbzdTGNFt2hJJA8mZLoiv4NhsQwUFp5Ufn/r7p5Wf5gVQ/oMxn/mlAC27aXFwpM\n +is7QCw8=", "X-Gm-Gg": "ATEYQzwyf9/+IAX7ZlFvCNs1AW/XlJjQ15x50qmGapI2kFNPaR/ZgldO5LHm6xCNIlp\n bOvuvy1P9CwGoyI+bUn+FhnvbsvwkYMgU27vB9RwH+O4YU3GwfPjWWsQUt55uufQoHkqVQ/ZHjs\n M5ZfuhIPam89Bfw3IHPnq49C+R767fa9cm1A9C4w3B6IRrlqGQZGMDXyojPDHJfV9vDqp9Wvxws\n eOC5UKf1Ku+75gT9EDooH3dyLBp9Kck1Ns1Lmd0JlorWCTqij2wvqjYQ9UKYaZINzSNDF+kS9qD\n zgUpfVG9wnmbYzizqvT6YlbAt8st68q1koHBjgOIsn2v6d/mGlVHVWSePtK4uf99lsss11xEPVQ\n hYKsY6gp19crjrf+JuPEv2AtcEYlqFpM+tfIqh/ghxfL0M6x+HGod8/kvqdL/aEe7b/AnGpMHCM\n boo+vp2pvBixy7ckEwbWqFnr5OBgsT69AMtyWMaQ58Pv8x8nefr6DKm5CHzAgbIBKXYvktQO1x9\n 7iFmg==", "X-Received": "by 2002:a05:600c:6487:b0:487:1c2:6a4c with SMTP id\n 5b1f17b1804b1-48727d6790dmr262055985e9.4.1774962943810;\n Tue, 31 Mar 2026 06:15:43 -0700 (PDT)", "From": "=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>", "To": "qemu-devel@nongnu.org", "Subject": "[PULL 03/11] target/mips: save CP0 timer in vmstate", "Date": "Tue, 31 Mar 2026 15:15:05 +0200", "Message-ID": "<20260331131514.21152-4-philmd@linaro.org>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260331131514.21152-1-philmd@linaro.org>", "References": "<20260331131514.21152-1-philmd@linaro.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2a00:1450:4864:20::332;\n envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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=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": "From: Trieu Huynh <vikingtc4@gmail.com>\n\nThe MIPS R4K CP0 timer (env->timer) is not included in vmstate_mips_cpu,\nso after loadvm the QEMUTimer has no scheduled expiry. This causes\nqemu_poll_ns() to block indefinitely and the guest to freeze until an\nexternal I/O event (e.g. a keypress) wakes the main loop.\n\nFix by adding an optional vmstate subsection for the timer, following\nthe same pattern used by ARM (gt_timer), RISC-V (env.stimer), SPARC\n(qtimer), and OpenRISC (timer).\n\nThe .needed callback returns false when env->timer is NULL (KVM mode),\nkeeping the subsection optional for backwards compatibility with\nexisting snapshots.\n\nResolves: https://gitlab.com/qemu-project/qemu/-/issues/1987\nSigned-off-by: Trieu Huynh <vikingtc4@gmail.com>\nReviewed-by: Peter Maydell <peter.maydell@linaro.org>\nReviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\nMessage-ID: <20260329113732.482619-1-vikingtc4@gmail.com>\nSigned-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n---\n target/mips/system/machine.c | 22 ++++++++++++++++++++++\n 1 file changed, 22 insertions(+)", "diff": "diff --git a/target/mips/system/machine.c b/target/mips/system/machine.c\nindex 8af11fd896b..473d3ab0363 100644\n--- a/target/mips/system/machine.c\n+++ b/target/mips/system/machine.c\n@@ -3,6 +3,7 @@\n #include \"internal.h\"\n #include \"migration/cpu.h\"\n #include \"fpu_helper.h\"\n+#include \"qemu/timer.h\"\n \n static int cpu_post_load(void *opaque, int version_id)\n {\n@@ -219,6 +220,23 @@ static const VMStateDescription vmstate_tlb = {\n \n /* MIPS CPU state */\n \n+static bool mips_timer_needed(void *opaque)\n+{\n+ MIPSCPU *cpu = opaque;\n+ return cpu->env.timer != NULL;\n+}\n+\n+static const VMStateDescription mips_vmstate_timer = {\n+ .name = \"cpu/timer\",\n+ .version_id = 1,\n+ .minimum_version_id = 1,\n+ .needed = mips_timer_needed,\n+ .fields = (const VMStateField[]) {\n+ VMSTATE_TIMER_PTR(env.timer, MIPSCPU),\n+ VMSTATE_END_OF_LIST()\n+ }\n+};\n+\n const VMStateDescription vmstate_mips_cpu = {\n .name = \"cpu\",\n .version_id = 21,\n@@ -333,4 +351,8 @@ const VMStateDescription vmstate_mips_cpu = {\n \n VMSTATE_END_OF_LIST()\n },\n+ .subsections = (const VMStateDescription * const []) {\n+ &mips_vmstate_timer,\n+ NULL\n+ }\n };\n", "prefixes": [ "PULL", "03/11" ] }