From nobody Mon Feb 9 05:29:48 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1767888800; cv=none; d=zohomail.com; s=zohoarc; b=O4AJGHWbgGGC3SYmbSNB9/NXehWxtw5JAReALsCaztRlo5gDKRUgX0IowO6UErwq17ZqKCOiJVtoqMF0DRwi7i634Gj9/29EkwQ5qy5XYJMC/EAaYSa3qJEl0UDhbD7FPNbP4qoXw7WbwqbmRmfMbpXKbjqVFrYcEYW5odIqUTg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767888800; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ll5Z0TF4oGkzy7B80cNHq3j/2a/mLD66y7IXpt23arc=; b=DbfcWC2qtUbPH36TlDvVnOws0tT6UVWwKAWNA41PI/TjFAoVrJRa0l98RdZSEmjnCJSJ+m+Tah8a+EZi6sipwj+TcKCWnWinpTj4UcKeka6xijAXYlgF5K/ZV/P9u7x/j40+Mu3KbxRXnMnfxMwAlQleP5euardvT+Wc5cg8/2g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767888800274934.767803067826; Thu, 8 Jan 2026 08:13:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdscs-0006KQ-T1; Thu, 08 Jan 2026 11:12:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdscl-0005r3-8W for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:35 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vdscj-0002q8-Od for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:35 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-47775fb6c56so31739715e9.1 for ; Thu, 08 Jan 2026 08:12:32 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f41f5e0sm155546005e9.8.2026.01.08.08.12.29 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 08 Jan 2026 08:12:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767888751; x=1768493551; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ll5Z0TF4oGkzy7B80cNHq3j/2a/mLD66y7IXpt23arc=; b=SS7LUIxIKC+LstP7IOa0bqRr3gXkJ4Wp42R1c1G3KzDIoVH55L+NxVFbyGVZ/NvAnM rK1LA3CkPbyAlRetl+k51TYsazjd2eS+wRK2Ww6IAjYoMmNFLqyDM4JfzjGMIIlZo1AT f9t86DcZXeMVmMM7Y5Wbjy+/gY394qd6HfuqS5PkbsWDYmgrlj7Sg5a2i46xK7bYTnXF R6dJd/+yoqVInHohKLOx79YgMYhONVPxTQjjbOlQJ/lgqCj+pzXrc/I6zwAJIisXFOE/ 37I5+tgBOJUrN45Pj26cWKU1wp7fL+/ohhCWdamBy+9mPFgFG7kx1oaIIJ0IImx060a0 1Suw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767888751; x=1768493551; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ll5Z0TF4oGkzy7B80cNHq3j/2a/mLD66y7IXpt23arc=; b=c4fDhxTQDMFjcAVbZUmofLBdYy39H/JGmgbSvhBa06pZ0pf/b0qIAkxjtV1N1TMKKz sAxBMKeV/J6zEHzn8YhZQqFxT+AN4mcrVam8ofoATCs4A61ERny0Mqktcu6UgWG+ceyh iHOp5Ai94NcRRx/pYtwO2A/LOMMGT1wcMle+AL3Cz2ET9l6cAL27eM5j5VwIcIjmzxuD fYtUawPZNMJCD4yqlhYv7egWSgVJaosmJxeinQhGKR9akS4XpHcWuoQFixijFvhekDwg +9ahNg4ZRGITo8zXJ9WZ84RdoW483Sn3b5Ql4m/jwOeYfKDkjR7IrdShTaTMeOn47aqM JtPw== X-Gm-Message-State: AOJu0YxsqAp8ZYInSDunGeFFUsoETaCKweDP588bIXobhwZWzUoxnkTb HMWJ9cHZz9RF928bkNOaLvJgTSC5RM7cQ4KYB8BqRxF7XFnT2z3S6Sr4dO/a71Z+YytjANuFLz0 vcAGZlxU= X-Gm-Gg: AY/fxX6eNx4rxQMaVB2zi3Lqco8ZqBOsExxS2oJbHiPZxHyDCkoZhG4vyyq0BGg7nXM oBWd4yf0Zl8vGd9AtuJ3RHwIgc3KZbAu0KYvqSqwlF6wdwnzSVwwV1M2+bQy4DboqMbWrWs4Rgg 1eU2+1ieJaCpGQSyWfcWnd4kbi0gS4/fK+M1mq47GKJIuDjNxa5ZZVRNV7X1HeD5fxa2vkhhIss 9kCXnyyPFyruaZIj/xs+52bWoX00dpe5OU9CryDlRA+oc3YDP6aygnYmB7+dA5QeYE4LsOtd7XG 0zN7vePptJ8uMu0/HL3+mYOhfcgJs1igNOEix3MAACJe+RI8YO3zjmlU0YRWyaX0L2tiPgTBKcM 50m6wLh+5MDeJxfu2wdN/loihwGRpPEnywLZ0xZLFFRUjvpI6rPaYmDbivkSakZwCsI3Q1YP7Ux wbKOgP19M1xUAmaCuoTAuz5lN4iT6BTybymK8LEtZzRdBbkSCuv2HPGXv86adK X-Google-Smtp-Source: AGHT+IHFGXc4mukeq5RNPsADO6B35bkk+ZyfOOFCLxPjoaE1cnugpKhlWv4bO9VyYsbnMwirST0N7g== X-Received: by 2002:a05:600c:190e:b0:477:9aeb:6a8f with SMTP id 5b1f17b1804b1-47d84b1faffmr84855705e9.9.1767888750917; Thu, 08 Jan 2026 08:12:30 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Ani Sinha , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Nikolai Barybin , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 1/4] dump: enhance dump_state_prepare fd initialization Date: Thu, 8 Jan 2026 17:12:16 +0100 Message-ID: <20260108161220.15146-2-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260108161220.15146-1-philmd@linaro.org> References: <20260108161220.15146-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=philmd@linaro.org; helo=mail-wm1-x329.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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1767888802716158500 From: Nikolai Barybin Initializing descriptor with zero is unsafe: during cleanup we risk to unconditional close of fd =3D=3D 0 in case dump state wasn't fully initialized. Thus, let's init fd with -1 value and check its value before closing it. Signed-off-by: Nikolai Barybin Reviewed-by: Daniel P. Berrang=C3=A9 Message-ID: <20250911123656.413160-2-nikolai.barybin@virtuozzo.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- dump/dump.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index f7a99a7af2e..016a7d7b970 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -104,7 +104,10 @@ static int dump_cleanup(DumpState *s) =20 guest_phys_blocks_free(&s->guest_phys_blocks); memory_mapping_list_free(&s->list); - close(s->fd); + if (s->fd !=3D -1) { + close(s->fd); + } + s->fd =3D -1; g_free(s->guest_note); g_clear_pointer(&s->string_table_buf, g_array_unref); s->guest_note =3D NULL; @@ -1709,8 +1712,8 @@ static DumpState dump_state_global =3D { .status =3D = DUMP_STATUS_NONE }; =20 static void dump_state_prepare(DumpState *s) { - /* zero the struct, setting status to active */ - *s =3D (DumpState) { .status =3D DUMP_STATUS_ACTIVE }; + /* zero the struct, setting status to active and fd to -1 */ + *s =3D (DumpState) { .fd =3D -1, .status =3D DUMP_STATUS_ACTIVE }; } =20 bool qemu_system_dump_in_progress(void) --=20 2.52.0 From nobody Mon Feb 9 05:29:48 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1767888806; cv=none; d=zohomail.com; s=zohoarc; b=bT/BU0NSfV6F7KYG+YiJ1VHJUJrUXo85yUCgPlT0/UUjBE/5AWzvHRt5e4I7uuUhcR/fvNFCXjr198j4h0GayxyFE86HGYoRYEa/wV0Qx/01HlWS0CnrPtlHC6RCPiQ7EkZDI5ZkEYEgdfmbXqmyRL2gNenON+QI+rs8AigzCIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767888806; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XOrPqLMsU/l7RtrsFWkuX3T1EdJ4tUaPw7x9fYs45IU=; b=JOuU/o9/KlN97PZmJ3faiztJlWPAEDn8xD2skNxPl6HgX46zCFd9tY6P0rkgy+ZqpWfnz7o67h4aALMD2TrVim2H8GdB7gpbEUe3bsGj2wK9i/SZ9b46AhiHpVGl7H1TFzvqzsz806FvGIqptpbn10Tl1PgSMZ8k3vifADFGcYs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767888806119845.8073697132785; Thu, 8 Jan 2026 08:13:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdsd7-0006n1-LL; Thu, 08 Jan 2026 11:12:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdscu-0006T0-8d for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:46 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vdscs-0002sv-3T for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:44 -0500 Received: by mail-wm1-x343.google.com with SMTP id 5b1f17b1804b1-47d1d8a49f5so22774095e9.3 for ; Thu, 08 Jan 2026 08:12:41 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d8636c610sm40592025e9.0.2026.01.08.08.12.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 08 Jan 2026 08:12:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767888759; x=1768493559; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XOrPqLMsU/l7RtrsFWkuX3T1EdJ4tUaPw7x9fYs45IU=; b=ijHiqrtCs9KeilWkKA3Ot3/qDwkrAT8vYEi2nenZ9nLUqJ2CuP8BL54n6tsnjeENRU Pdp3Y3XCMXFiznal1pMns4L/xA4altqJX6OO0Y0epxWg+9bW1DtKVLgqUEjGWGVsoqdX ObPvZbOhFvSP7kGlrf6qKYFATa4nNvdD23sslYSKliSR/qAWpkh8kyDKhtE7ym7MonTD c9KbFEW4NyvhntDy0uCTBCI/onJqvXRDIexXl6qKWJEItZ5xGTOjXK7KH2xv+KfYA2ff 81RxNQ5TUmAG3k9IgIWwLXSoarcDqod3uMIG11Soar6LIaKgVi63m4vNOyVUCR2P3+/A eV2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767888759; x=1768493559; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XOrPqLMsU/l7RtrsFWkuX3T1EdJ4tUaPw7x9fYs45IU=; b=C3uWOfOXDbDsVqbKjlUl8i7mDrh0/P3qexQqs/pDfwvj3td2/By7hru9z9LZSTwlbc 7fQYRRiKW/HA4ExJBWcLN+zaUEzse47SXwGsYMoEfV+WjGIBrWrhsykPcy8DYAce2RAo qysfjp4s0iHMsAc1ltFIpwb1Pnmafo9G6Nv8gISg6FR1dIJ7MAihH8ViMERxkNBdDvPZ +KnUyMWh6iYWeR67kdMMbzvylSgEIhizx2KW8UDI0/hpGq05KPxmwG26soGfogxpazWt cUvKk5Thb8AC9Szt5lI0yQ0ljiLPe+juuxUGQ4BWfjoNqHjCR8IwoQCbuYg+L5jCI1Kw Ooaw== X-Gm-Message-State: AOJu0YylAGUewMTTgI4vJ+xrC3O/B0bGndVmimXP/bRBs+27cdDB6tMf LV1McYmh7u4M2IAdYnn2q95tRpSkAA6B9KPruJAoA00iNpj+xXAY/Z9oIJli0lBH4vDjhxEqHzP tsGcnwA4= X-Gm-Gg: AY/fxX7m7MSlNUwRzS8ULTnjIcBShKqalAhxHtz3ygAOD5aG1h5OGhlsSPM7SXmBwna cjXZtuKIWyCYiyiNJDC4Jq9domfCsdq1xbYtHQ+XewmQzBA8VcuNqMB63mU6RrXuS+KkWu0HzKJ +YmVI8kXhIvpiR3xhHTHIV28wOLFTvGGFNHaam3tPmOeFhV3FZeK43CearBSC4raEGOQPVAVA25 yxWmsnN/vZtlWwZu+do3p1hP/QV13T1Q4IDN79jd5UR06xVe0No4fFXQer51z9CgDi14GfL17iM PaqAiHm+OxsF5G0r/ksJuYK4WT5U7tCl6pDU8770QwYpXbH+ygSVE5a1ZKKEXBtb5Xx6PzwPyKy IDC/b9fTJfgqRIQSUF0N/OJAzeyzvKk3I5+Ca66VVp/nSm6J80DS+g08n+GshpWggpzS6R2n9yr a1TagDO/AnL4MB7ivxVL0Pr7PqoFqoaBaq1GNwfqhNEyyN3rCyKgshOQD77vDg X-Google-Smtp-Source: AGHT+IEj/sT9tjabVSTpPAeWmKH5BZv3w4k8j6+6vRRZsAhVZsYAQXlUi1ONIfgLtEiV4HDxF2r83w== X-Received: by 2002:a05:600c:3b1f:b0:477:8a29:582c with SMTP id 5b1f17b1804b1-47d84b52b9cmr73468845e9.34.1767888758951; Thu, 08 Jan 2026 08:12:38 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Ani Sinha , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Nikolai Barybin , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 2/4] dump: enhance win_dump_available to report properly Date: Thu, 8 Jan 2026 17:12:17 +0100 Message-ID: <20260108161220.15146-3-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260108161220.15146-1-philmd@linaro.org> References: <20260108161220.15146-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::343; envelope-from=philmd@linaro.org; helo=mail-wm1-x343.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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1767888806942158500 From: Nikolai Barybin QMP query-dump-guest-memory-capability reports win dump as available for any x86 VM, which is false. This patch implements proper query of vmcoreinfo and calculation of guest note size. Based on that we can surely report whether win dump available or not. To perform this I suggest to split dump_init() into dump_preinit() and dump_init_complete() to avoid exausting copypaste in win_dump_available(). For further reference one may review this libvirt discussion: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/HJ3J= RLWLGN3IKIC22OQ3PMZ4J3EFG5XB/#HJ3JRLWLGN3IKIC22OQ3PMZ4J3EFG5XB [PATCH 0/4] Allow xml-configured coredump format on VM crash Signed-off-by: Nikolai Barybin Reviewed-by: Daniel P. Berrang=C3=A9 Message-ID: <20250911123656.413160-3-nikolai.barybin@virtuozzo.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- dump/win_dump.h | 2 +- dump/dump.c | 129 +++++++++++++++++++++++++++--------------------- dump/win_dump.c | 23 +++++++-- 3 files changed, 95 insertions(+), 59 deletions(-) diff --git a/dump/win_dump.h b/dump/win_dump.h index 9d6cfa47c56..62e19c25273 100644 --- a/dump/win_dump.h +++ b/dump/win_dump.h @@ -14,7 +14,7 @@ #include "system/dump.h" =20 /* Check Windows dump availability for the current target */ -bool win_dump_available(Error **errp); +bool win_dump_available(DumpState *s, Error **errp); =20 void create_win_dump(DumpState *s, Error **errp); =20 diff --git a/dump/dump.c b/dump/dump.c index 016a7d7b970..89ce9bcd77e 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -1781,10 +1781,7 @@ static void vmcoreinfo_update_phys_base(DumpState *s) g_strfreev(lines); } =20 -static void dump_init(DumpState *s, int fd, bool has_format, - DumpGuestMemoryFormat format, bool paging, bool has_= filter, - int64_t begin, int64_t length, bool kdump_raw, - Error **errp) +static void dump_preinit(DumpState *s, Error **errp) { ERRP_GUARD(); VMCoreInfoState *vmci =3D vmcoreinfo_find(); @@ -1792,16 +1789,6 @@ static void dump_init(DumpState *s, int fd, bool has= _format, int nr_cpus; int ret; =20 - s->has_format =3D has_format; - s->format =3D format; - s->written_size =3D 0; - s->kdump_raw =3D kdump_raw; - - /* kdump-compressed is conflict with paging and filter */ - if (has_format && format !=3D DUMP_GUEST_MEMORY_FORMAT_ELF) { - assert(!paging && !has_filter); - } - if (runstate_is_running()) { vm_stop(RUN_STATE_SAVE_VM); s->resume =3D true; @@ -1818,41 +1805,10 @@ static void dump_init(DumpState *s, int fd, bool ha= s_format, nr_cpus++; } =20 - s->fd =3D fd; - if (has_filter && !length) { - error_setg(errp, "parameter 'length' expects a non-zero size"); - goto cleanup; - } - s->filter_area_begin =3D begin; - s->filter_area_length =3D length; - - /* First index is 0, it's the special null name */ - s->string_table_buf =3D g_array_new(FALSE, TRUE, 1); - /* - * Allocate the null name, due to the clearing option set to true - * it will be 0. - */ - g_array_set_size(s->string_table_buf, 1); - memory_mapping_list_init(&s->list); - guest_phys_blocks_init(&s->guest_phys_blocks); guest_phys_blocks_append(&s->guest_phys_blocks); - s->total_size =3D dump_calculate_size(s); -#ifdef DEBUG_DUMP_GUEST_MEMORY - fprintf(stderr, "DUMP: total memory to dump: %lu\n", s->total_size); -#endif =20 - /* it does not make sense to dump non-existent memory */ - if (!s->total_size) { - error_setg(errp, "dump: no guest memory to dump"); - goto cleanup; - } - - /* get dump info: endian, class and architecture. - * If the target architecture is not supported, cpu_get_dump_info() wi= ll - * return -1. - */ ret =3D cpu_get_dump_info(&s->dump_info, &s->guest_phys_blocks); if (ret < 0) { error_setg(errp, @@ -1910,6 +1866,56 @@ static void dump_init(DumpState *s, int fd, bool has= _format, } } =20 + s->nr_cpus =3D nr_cpus; + return; +cleanup: + dump_cleanup(s); +} + +static void dump_init_complete(DumpState *s, int fd, bool has_format, + DumpGuestMemoryFormat format, bool paging, + bool has_filter, int64_t begin, int64_t len= gth, + bool kdump_raw, Error **errp) +{ + ERRP_GUARD(); + + s->has_format =3D has_format; + s->format =3D format; + s->written_size =3D 0; + s->kdump_raw =3D kdump_raw; + + /* kdump-compressed is conflict with paging and filter */ + if (has_format && format !=3D DUMP_GUEST_MEMORY_FORMAT_ELF) { + assert(!paging && !has_filter); + } + + s->fd =3D fd; + if (has_filter && !length) { + error_setg(errp, "parameter 'length' expects a non-zero size"); + goto cleanup; + } + s->filter_area_begin =3D begin; + s->filter_area_length =3D length; + + /* First index is 0, it's the special null name */ + s->string_table_buf =3D g_array_new(FALSE, TRUE, 1); + /* + * Allocate the null name, due to the clearing option set to true + * it will be 0. + */ + g_array_set_size(s->string_table_buf, 1); + + s->total_size =3D dump_calculate_size(s); +#ifdef DEBUG_DUMP_GUEST_MEMORY + fprintf(stderr, "DUMP: total memory to dump: %lu\n", s->total_size); +#endif + + /* it does not make sense to dump non-existent memory */ + if (!s->total_size) { + error_setg(errp, "dump: no guest memory to dump"); + goto cleanup; + } + /* get memory mapping */ if (paging) { qemu_get_guest_memory_mapping(&s->list, &s->guest_phys_blocks, err= p); @@ -1920,8 +1926,6 @@ static void dump_init(DumpState *s, int fd, bool has_= format, qemu_get_guest_simple_memory_mapping(&s->list, &s->guest_phys_bloc= ks); } =20 - s->nr_cpus =3D nr_cpus; - get_max_mapnr(s); =20 uint64_t tmp; @@ -2151,11 +2155,6 @@ void qmp_dump_guest_memory(bool paging, const char *= protocol, } #endif =20 - if (has_format && format =3D=3D DUMP_GUEST_MEMORY_FORMAT_WIN_DMP - && !win_dump_available(errp)) { - return; - } - if (strstart(protocol, "fd:", &p)) { fd =3D monitor_get_fd(monitor_cur(), p, errp); if (fd =3D=3D -1) { @@ -2194,9 +2193,19 @@ void qmp_dump_guest_memory(bool paging, const char *= protocol, =20 s =3D &dump_state_global; dump_state_prepare(s); + dump_preinit(s, errp); + if (*errp) { + qatomic_set(&s->status, DUMP_STATUS_FAILED); + return; + } =20 - dump_init(s, fd, has_format, format, paging, has_begin, - begin, length, kdump_raw, errp); + if (has_format && format =3D=3D DUMP_GUEST_MEMORY_FORMAT_WIN_DMP + && !win_dump_available(s, errp)) { + return; + } + + dump_init_complete(s, fd, has_format, format, paging, has_begin, + begin, length, kdump_raw, errp); if (*errp) { qatomic_set(&s->status, DUMP_STATUS_FAILED); return; @@ -2219,6 +2228,13 @@ DumpGuestMemoryCapability *qmp_query_dump_guest_memo= ry_capability(Error **errp) g_new0(DumpGuestMemoryCapability, 1); DumpGuestMemoryFormatList **tail =3D &cap->formats; =20 + DumpState *s =3D g_new0(DumpState, 1); + dump_state_prepare(s); + dump_preinit(s, errp); + if (*errp) { + goto cleanup; + } + /* elf is always available */ QAPI_LIST_APPEND(tail, DUMP_GUEST_MEMORY_FORMAT_ELF); =20 @@ -2238,9 +2254,12 @@ DumpGuestMemoryCapability *qmp_query_dump_guest_memo= ry_capability(Error **errp) QAPI_LIST_APPEND(tail, DUMP_GUEST_MEMORY_FORMAT_KDUMP_RAW_SNAPPY); #endif =20 - if (win_dump_available(NULL)) { + if (win_dump_available(s, NULL)) { QAPI_LIST_APPEND(tail, DUMP_GUEST_MEMORY_FORMAT_WIN_DMP); } =20 + cleanup: + dump_cleanup(s); + g_free(s); return cap; } diff --git a/dump/win_dump.c b/dump/win_dump.c index 3162e8bd487..d42427feb22 100644 --- a/dump/win_dump.c +++ b/dump/win_dump.c @@ -20,8 +20,25 @@ =20 #if defined(TARGET_X86_64) =20 -bool win_dump_available(Error **errp) +static bool check_header(WinDumpHeader *h, bool *x64, Error **errp); + +bool win_dump_available(DumpState *s, Error **errp) { + WinDumpHeader *h =3D (void *)(s->guest_note + VMCOREINFO_ELF_NOTE_HDR_= SIZE); + Error *local_err =3D NULL; + bool x64 =3D true; + + if (s->guest_note_size !=3D VMCOREINFO_WIN_DUMP_NOTE_SIZE32 && + s->guest_note_size !=3D VMCOREINFO_WIN_DUMP_NOTE_SIZE64) { + error_setg(errp, "win-dump: invalid vmcoreinfo note size"); + return false; + } + + if (!check_header(h, &x64, &local_err)) { + error_propagate(errp, local_err); + return false; + } + return true; } =20 @@ -480,7 +497,7 @@ out_cr3: =20 #else /* !TARGET_X86_64 */ =20 -bool win_dump_available(Error **errp) +bool win_dump_available(DumpState *s, Error **errp) { error_setg(errp, "Windows dump is only available for x86-64"); =20 @@ -489,7 +506,7 @@ bool win_dump_available(Error **errp) =20 void create_win_dump(DumpState *s, Error **errp) { - win_dump_available(errp); + win_dump_available(s, errp); } =20 #endif --=20 2.52.0 From nobody Mon Feb 9 05:29:48 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1767888806; cv=none; d=zohomail.com; s=zohoarc; b=Q4anK/7UrcKrEfn/ojPxjtSccYJ80GTU+zXdc+uKg6+cAoW7zbYSAs1bWFERuMf31WxQpYgeVJRvZjtQ7NRCqN5mcimvESFSTzjkN7YL7Nc0gkFoccBfEAT5fef89wK9NvJr/B1TfWfG0v7M7Yab9O94XXmF25nThEstCZLynS0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767888806; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7ZYXIefjG3vv0B8BkvXHa3cG6Saexu6FniUqafexem4=; b=K48kPbN0NIlH3Vh0e6+F+s8iQeP6taLovI2BF8GLRSon1j2/Qu4I94GIkVU88J8oByIY2A/EFG8sDzNayZde3iklrUQai+9KXVqZSpFDAb7gfEymKxNiNkVl6uBGhBTiuxwsZuljpVfQCqg3Z/wX0sHeIAvwxN/u9g69FuCUv5k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767888806681568.2178569224664; Thu, 8 Jan 2026 08:13:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdsdE-0007Oo-Bh; Thu, 08 Jan 2026 11:13:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdscz-0006oH-Lk for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:55 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vdscy-0002uR-6t for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:49 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-477770019e4so27546065e9.3 for ; Thu, 08 Jan 2026 08:12:47 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5df9c5sm17658306f8f.22.2026.01.08.08.12.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 08 Jan 2026 08:12:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767888766; x=1768493566; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7ZYXIefjG3vv0B8BkvXHa3cG6Saexu6FniUqafexem4=; b=eJxnkj+N54kxN8zSqVLHjNbuRvQNPdD1nTAd+iJVqWHZEdNhGruUlQFaCPA/zuFBUR V198uB4ozDiG/ebm71pvCu6ik29uA7E6lHNL7/TpiBbkVCBwVeHctDmOC+ZFMYd1dcjR RjBkKUDAdb1W7Unb/+KItgGKKVSO0wb9h6/HA7dc7VoalgZBGF7z13/gBHqHP9tTMXIb 5Bmorj29K5+dsdD1A3WdPS1VD6hCTbN3k+i2m533coJ4NP7dhBwDtLvBfUzQD2Buvv2B c26YDrbE55bTKxxx7vmDMBivd9xt4Y5KIOOdlaSu6HLk7PJEz8AMHHrfPJ8CXvLzNlXY KwTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767888766; x=1768493566; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7ZYXIefjG3vv0B8BkvXHa3cG6Saexu6FniUqafexem4=; b=Gb3AcPhWh+6LuPFwAcw2mldYOhmPLAhH1zk1BQRI73L4Rhac4+eKAQXqcly0Ow55mq cUFpExVVKGB39U3jbfkEaA6OufJMgyvn7eSh+Zdcqz5p9XcAtYWPeXF9u1hN4+v8P511 qGtLZWMhosIV8s+aFVSDqeEOD4DlvFHS/ZrwrsSwDIs8NykvF5VSn2DPP7Mz77HV3C9y SMORSpoG6KZ6b8Ynt7IO+GkC1qYr5DGpqpxzkteU43PGpk8QSeoWamLvNgN+eHzsqm8b KaEsKV1HQjqG5O/D+QEoFxvzwOfkJYddtnaQPUlJWdVujFyDTFDyot7KBwkFUwtxqxIl oxig== X-Gm-Message-State: AOJu0YwySVj0rcbp982oWlF2as+tkpBKKeNDJSJ83vooXwA8xL15Bowt ugXh8pbYQvrSSaaI2izVr+qL46KxhKgQyIta3v10p912P+o47GYtLpPLvRMbvdBxB9L33F3Aewc y5GaEC7Y= X-Gm-Gg: AY/fxX7gx7ajhY/9jgbygszxhCwJq91ORXSoga/RBZmdiZQsQIXLYMRLZ6T6vxBy4X7 n6fLb91xzqIAY1MzbUWkjUE+qVWhsWJyC58icHYHa7WI6fWn+VVHYseCaUVlWIc5sMUMOnpnBCt eC6NaMWB76o32Nq+5vMuAiQfJTw0/43wEwnz5G4X6RHBaLWfTiLMTYpG/XY2S/Yo46vxEIqi53X kUlaaRFvhxzPhsyXBp9+9z7mdfScgMCmUALmIMHIqwD3CcE1Rb4gVlGJxJD7d7Bt3kQiR4oJXYU NqlsAebMg5mceN6KVaz9lhsNnGgxhlb8fzlHK84mq/709F/CNjIS3vLAKs5DW0Ng4oACuAIbNQy b5CoeyJJljTXek1F6wfJHqoSlGJ0WqTEU9PhvbApjuwj7f9SycwL5wuZcpiYT/rsInM4Z4dlwnx vhYwUkXBgjd6nvalYWxHQmBa+aB9UGdumi87QGFFBjT5MJNLme8H7sXRMR/k6j X-Google-Smtp-Source: AGHT+IENgN4IyYGBtZ3Y1FqXsp+HAYZTfs3r6StaL+RhD0WU29pGSnd+X2pxQFUX/owectZLwz/VCQ== X-Received: by 2002:a05:6000:2dc1:b0:430:f3ab:56af with SMTP id ffacd0b85a97d-432c379f196mr8833535f8f.48.1767888765821; Thu, 08 Jan 2026 08:12:45 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Ani Sinha , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 3/4] dump: Abort in create_win_dump() on non-x86 guests Date: Thu, 8 Jan 2026 17:12:18 +0100 Message-ID: <20260108161220.15146-4-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260108161220.15146-1-philmd@linaro.org> References: <20260108161220.15146-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=philmd@linaro.org; helo=mail-wm1-x329.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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1767888808688158500 qmp_dump_guest_memory() checks win_dump_available() before calling create_win_dump(). On non-x86 targets calling it would be a programming error, so abort. Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- dump/win_dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dump/win_dump.c b/dump/win_dump.c index d42427feb22..e5fdc12ad34 100644 --- a/dump/win_dump.c +++ b/dump/win_dump.c @@ -506,7 +506,7 @@ bool win_dump_available(DumpState *s, Error **errp) =20 void create_win_dump(DumpState *s, Error **errp) { - win_dump_available(s, errp); + g_assert_not_reached(); } =20 #endif --=20 2.52.0 From nobody Mon Feb 9 05:29:48 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1767888798; cv=none; d=zohomail.com; s=zohoarc; b=OfDhI1Ghcv43/32rTryKLM/qicKrh5sZrv8BpWCiaRhbEUzq1OCJBSYmdlTWMryVF39oENL3Q1iHgcfPzxOAXApCpRD1Lqk9yvgDv3mPgJjqxzy+b7I3stZxIFMQ64mYY8Fw9DeA4sZtAIWTlTj7YBfmYHHx6qN5FXiiOkktULY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767888798; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3PK+zL9VijewfOEn/KKAzudCPx9ckXj3dsbGsolAKk8=; b=f8LSYayRwESuR7LZrixptabMOnEGR5SengYb0EPXazeBGqHaTVS23c+q2xIpU0AJVlB1gLH5TvZyLISKj4UnmqqUNKFv7WT/MqPI7s8DtF2g0dhmHf1H4YM3VwqgJsXg7s2NdfuxpifhB+iu/nLCR4k0Tjt3UBPeKMo8VQotZ5Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767888798411382.35866378700564; Thu, 8 Jan 2026 08:13:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdsdF-0007kK-Ie; Thu, 08 Jan 2026 11:13:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdsd9-000700-GB for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:59 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vdsd5-0002vu-Qf for qemu-devel@nongnu.org; Thu, 08 Jan 2026 11:12:58 -0500 Received: by mail-wm1-x342.google.com with SMTP id 5b1f17b1804b1-4779adb38d3so23774095e9.2 for ; Thu, 08 Jan 2026 08:12:54 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0dadcfsm17075386f8f.3.2026.01.08.08.12.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 08 Jan 2026 08:12:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767888773; x=1768493573; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3PK+zL9VijewfOEn/KKAzudCPx9ckXj3dsbGsolAKk8=; b=sxYGZz3TpXzmAYOlXNnePii6DEfK9oIOruY488LE95ngqmH78ycOS0VmqUCbEDJO4b bkjpvyjO0bs+dgDXrhGCKDNMieBsim/r+dqiLnIh4MOjFgCrLhNIS//wlCyPpL8rR0Tb qtUeZ530QsbSNbBh5liNyU2Cb9cYT4JGP1m5+v5Se/RxxXnjiJKDTlPM4kvMyU3TCjU8 2IuOFEitKfG8qmNh2cg3gM/DuqoEBbv8mHkKFm6U37EWfPycxhCeGshVi8WrHmWxUIhv g1wIJNSRwno6Yy3db8xVzyf0UtUpGZirR4abL7aC2MzaLyvit6rn/lSSDnxlCQTMujpM 2+kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767888773; x=1768493573; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3PK+zL9VijewfOEn/KKAzudCPx9ckXj3dsbGsolAKk8=; b=uTfte2ehGNcOetYO5OnvGVoncsv6AYVXac7fVbg0ttKa9fd2VL8ldqKhtPmJ0/kDpE j8VH1OEX1MlxLBUE6Wy4QT2ztCcyMVUbiK6OatJzIQwfHAwH4H1F0OOhzsOHXp+Ag8M5 TKPLwhYYiX10YWhE2k58hm3Eet0TEUkzNwPoYHSBVZ8U3vwecqO2hVhKV40XNjy0x27j /B5DidwNCbIx07aL12H7DySwcMzCS14oU/YbPYay8MdWPhEAg1eNuj/p7Of79UALsumR jjnYcBipkVWETBGZlQFQnVE+clmQOWDpix0dDzovc6wKL68wdh6OwgcVvMkDaHRkgkkt DK3g== X-Gm-Message-State: AOJu0YygJgZ4IS3EdOYLjAp8gdp41FdbX7/PCNgf/zcCNepDk3D/N4Ez I0Tr47redi9tTgiMChYO0aIHtQAuOEp5dIBh0R0UNjD19CvUo9smfAxfKPMRKzn9O1p0ZX/3N5/ darukdE4= X-Gm-Gg: AY/fxX4/JXUKUIVBxMlJ6URncZelz1rRTRKH4Mlf0SgTXpfjx0AHH7ZUQdnON43elPx 5o7K4SY1oakTYSPNgoE0XKhLbyICn77IgOw+CIxEd3vZ0QddLQ8N7SKorPcs60KuR6pjK8t1Io0 4WRZbBxgHQEMLDyAr5+Gf7kyMFlW5Dm764gI6JTloRjRkRuU1jYgpjCuN17QED1DEpVXqZtuw4k Smpte+MD80W3wwJl2E8xdvrzcYp5uXxpBYkbshFb322RdevCht73D1niqmYODKc3hErZhvqSrGb kHFXVHFZSL+m5hpqUk0DUdFPwHyZFP+ZyKtYAzoevomGKOuS1BqjKGdZEDilv0gUC0Q1/JxzZUe ssh8Q7VqAMYGSi01GqwstySt4We3jOnrVhBTLjqGclPumjb5wcVdVY7wFue32ZBOeut8upTl92A vmLjYZIlqPS3eNuLxGn4RHK9LcWj8tex9aziTinvVQ1RQ31tG3Ujc+fdlwfkvb X-Google-Smtp-Source: AGHT+IGQKi2Xh4akMjOmnIdNPDmoNJbrSgOUjVVEkZMWj28ZHTLugqlvxnfjzKNAeqPOHExakGxqdw== X-Received: by 2002:a05:600c:8b09:b0:458:a7fa:211d with SMTP id 5b1f17b1804b1-47d8f284036mr10302735e9.29.1767888773044; Thu, 08 Jan 2026 08:12:53 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Ani Sinha , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 4/4] dump: Build stubs once for non-x86 targets Date: Thu, 8 Jan 2026 17:12:19 +0100 Message-ID: <20260108161220.15146-5-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260108161220.15146-1-philmd@linaro.org> References: <20260108161220.15146-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::342; envelope-from=philmd@linaro.org; helo=mail-wm1-x342.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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1767888800934158500 Rather than compiling the same content for all targets (unused most of the time, i.e. qemu-system-avr ...), extract the non x86 specific parts to a stub file and build it once for all non-x86 targets. Add a Kconfig symbol to only select the target-specific file with the x86 target (rename this file with '-x86' suffix). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Marc-Andr=C3=A9 Lureau --- dump/win_dump-stubs.c | 21 +++++++++++++++++++++ dump/{win_dump.c =3D> win_dump-x86.c} | 20 +------------------- Kconfig | 1 + dump/Kconfig | 4 ++++ dump/meson.build | 3 ++- 5 files changed, 29 insertions(+), 20 deletions(-) create mode 100644 dump/win_dump-stubs.c rename dump/{win_dump.c =3D> win_dump-x86.c} (97%) create mode 100644 dump/Kconfig diff --git a/dump/win_dump-stubs.c b/dump/win_dump-stubs.c new file mode 100644 index 00000000000..07d1a0c5ea9 --- /dev/null +++ b/dump/win_dump-stubs.c @@ -0,0 +1,21 @@ +/* + * Windows crashdump stubs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "win_dump.h" + +bool win_dump_available(DumpState *s, Error **errp) +{ + error_setg(errp, "x86-64 Windows guest dump not built-in"); + + return false; +} + +void create_win_dump(DumpState *s, Error **errp) +{ + g_assert_not_reached(); +} diff --git a/dump/win_dump.c b/dump/win_dump-x86.c similarity index 97% rename from dump/win_dump.c rename to dump/win_dump-x86.c index e5fdc12ad34..4f8bcc356fc 100644 --- a/dump/win_dump.c +++ b/dump/win_dump-x86.c @@ -1,5 +1,5 @@ /* - * Windows crashdump (target specific implementations) + * Windows crashdump (x86 specific implementations) * * Copyright (c) 2018 Virtuozzo International GmbH * @@ -18,8 +18,6 @@ #include "win_dump.h" #include "cpu.h" =20 -#if defined(TARGET_X86_64) - static bool check_header(WinDumpHeader *h, bool *x64, Error **errp); =20 bool win_dump_available(DumpState *s, Error **errp) @@ -494,19 +492,3 @@ out_free: out_cr3: first_x86_cpu->env.cr[3] =3D saved_cr3; } - -#else /* !TARGET_X86_64 */ - -bool win_dump_available(DumpState *s, Error **errp) -{ - error_setg(errp, "Windows dump is only available for x86-64"); - - return false; -} - -void create_win_dump(DumpState *s, Error **errp) -{ - g_assert_not_reached(); -} - -#endif diff --git a/Kconfig b/Kconfig index 63ca7f46df7..26388c12838 100644 --- a/Kconfig +++ b/Kconfig @@ -1,6 +1,7 @@ source Kconfig.host source backends/Kconfig source accel/Kconfig +source dump/Kconfig source target/Kconfig source hw/Kconfig source semihosting/Kconfig diff --git a/dump/Kconfig b/dump/Kconfig new file mode 100644 index 00000000000..99f99ff4a4f --- /dev/null +++ b/dump/Kconfig @@ -0,0 +1,4 @@ +config WINDUMP + bool + default y if I386 + depends on I386 diff --git a/dump/meson.build b/dump/meson.build index 4277ce9328a..26e1561ed48 100644 --- a/dump/meson.build +++ b/dump/meson.build @@ -1,2 +1,3 @@ system_ss.add([files('dump.c', 'dump-hmp-cmds.c'), snappy, lzo]) -specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: files('win_dump.c')) +specific_ss.add(when: 'CONFIG_WINDUMP', if_true: files('win_dump-x86.c')) +system_ss.add(when: 'CONFIG_WINDUMP', if_false: files('win_dump-stubs.c')) --=20 2.52.0