From nobody Wed Aug 26 07:24:35 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786536789; cv=none; d=zohomail.com; s=zohoarc; b=k+xEloynet6bcnvah/zqmypvmrcc0HEiziXHzy2V5wTBEYs1Y5h9QGDdoYJtlf2Xe+O/yqSvQYsEqOBjuQfuX596So6jzK4+36//M/8svUOBCPkNk6A4zwtkcl03MSsKRze6VZioSCHIp9KzGIsOlXrVFV6jclF7ivJsdV7zoiw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786536789; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=S9gC3BqAKixHIMRuSDxvDO89+yIQbs1B8Bz34DWZvWE=; b=DDS0uDuTvhsMvlumdUByZJxc03DyOs0HmZKV7puYQ0vgI/4OoOiC2/w1gIHPBA/NSTYOnT89bwlH8Xlqb4i9WrO+FN8lM42uPKOdX0vgGfVZhjwiLX1qO3viKorpa3hgcFm2hXtvTgWJrmhOb9Q2aG8TbfOnURRRfOyf1fw2Kvs= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786536789294934.0245524768343; Wed, 12 Aug 2026 05:13:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wu7pC-0006vY-ML; Wed, 12 Aug 2026 08:12:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7p8-0006vC-6p for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:12:46 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7p6-0007Rg-Eo for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:12:45 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CB4SNJ3963406 for ; Wed, 12 Aug 2026 12:12:43 GMT Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0nucgpba-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 12:12:42 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52cd0374265so17265631cf.1 for ; Wed, 12 Aug 2026 05:12:42 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4997b237ab6sm36456285e9.0.2026.08.12.05.12.40 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 12 Aug 2026 05:12:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= S9gC3BqAKixHIMRuSDxvDO89+yIQbs1B8Bz34DWZvWE=; b=gDGIz5+gRuaKXFLu CgbjuSBzZlf9Nq/WTwODYc1Z6e2o8GB6B6UgxadVyGoNrZIXkrQCPOZMKB2Vg42K x96vV3HtkuGJ8vXz7HcmexFy3vCgH5Sp8FSIjopU2R00s+BXg2/JlYDLF1LaSGPh l/yN3dV9YQg+rZEJn3lfPd7XeTutF8+qpY8NX61OAdD8OQE6zqtI5JHY5ns1ChS1 2fjW4U73PHL6Nv1VQ0S7U8zZyVuvUuKTwHUbTa+P59A6BsHZLEsPR7I8FLE7tM0f AMsnyQj4BSOOKGb2ZKi+yJu9K639YZrbcIFM+M0u124iihVORwB5FYBJLbMjwNSk 3hq5uQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786536762; x=1787141562; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=S9gC3BqAKixHIMRuSDxvDO89+yIQbs1B8Bz34DWZvWE=; b=hSlKFScQt2yiXz6IPAOqE7Gbio16ktGDAGE4IAFHMQsxUdacH7I+sROrNVrZRTGsrO n8KN7KVinOj+Qj/l1G1LeuNj3Oi2tB3Z/ssXS0KQ9Tb5sp6fkBvTlPI0FSzgBursHzDr xwdoDoNelRHHqTwdD+gSL9z6GWRSXMg0NbjMCSUp+n0Wc5JaVGj48FPzH/bO/RdyntHb FU4gLOu2xFxhwK5qAzqJcEndb8xHiIFhjgH7SjbGcokAuU56mNZYLtgZgWGtyMZSnzsF n2vrL9XZzzja3IU4WUph3dwdDQq8XvhOiz0Li4elykW/K3SfCqLyzQ13ZsHmy+2jjKeH blAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786536762; x=1787141562; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=S9gC3BqAKixHIMRuSDxvDO89+yIQbs1B8Bz34DWZvWE=; b=crbXBEhH7TVmYLTB0fkH99pA7i7IpnxDLSviItTKEuGAxjPKaPJwsfupNCDRWKotML JcCZ287ExdqzMar6toBS9TFURDjX/npn0kE5VJ3k8i4MyjE4w9GfhnvZuewEh1+hUp/D jtzIMm03pdIj6eoY8vPuJfQEx8QUgX+42j0JfLjQZJQvl1xJ05V2YMdnhtFfA/R/FINS /dqltoE9EqdNBVPzCBOKWcIYC29kGw0AwLcfBpsBaiaHdiAV/50VQXyIxUoh2zWICohW PpJTqtKaVe/DbzSht8VzDALJ1uPCz1/miGyn39Bgp7SdpDGBbfk8z3kne4g7kfF3ncQ1 8aiA== X-Gm-Message-State: AOJu0Yy0X8mQa3GtaIR4QYA0wURQVUEgKAXcebEXOvb0idrhqxDo/HDq sj2kaIhSO6owlMK9H83NVle5tyPcub1gJr+r/E7bMl7turzRdH60s3MtI41q2Rxewgs/gtgcyM+ DB/+QhZ2uUFzjG0r9MVXHxH//UVbYMNa5f0Z/UyvcZMETEPc4Oj0QzxhLRn5kcNiNnQ== X-Gm-Gg: AR+sD11FijMs2uiomWPUZ8mUxhfMOZDctwrTLNQhVW2SP+bf+S49WF1JkwGIwHcaLsh y3uxD7PCYeGu9cDfhS5368cL1uIRRS2xCdVqS6gVeURp5REHtvNxGRp5JJQO0FNt1Vq9Y3Z8GaW fX50jw3ErTK16EOEQyNRHxAHrCds+W9+/hzJtIFXwZ+hj2y+554EDm7FCVCuM2+sp4BBspe3vcr AzS8IRKLkTzWKK0ZxZ9RdwYXM908jnqmtKdouokrPF6XAyZF2M8n+Eh46qHO7N+94A/pUyErv2+ X02JO46V+Z9ptNDgxeRsUPRN5wMiNogx478tH1AJN0PBJRAhUx9D4v26L4kJRurbwmo1CNPKQtz 8ptiP54Gqu6tX5f6yiZ8PhhqDqvoyAsji5m8ULqharg== X-Received: by 2002:a05:622a:4818:b0:50b:48e3:47a7 with SMTP id d75a77b69052e-52d647074f5mr38476021cf.18.1786536762141; Wed, 12 Aug 2026 05:12:42 -0700 (PDT) X-Received: by 2002:a05:622a:4818:b0:50b:48e3:47a7 with SMTP id d75a77b69052e-52d647074f5mr38475341cf.18.1786536761643; Wed, 12 Aug 2026 05:12:41 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v5 1/7] hw/nmi: Use object_child_foreach_recursive() in nmi_children() Date: Wed, 12 Aug 2026 14:12:26 +0200 Message-ID: <20260812121232.71958-2-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260812121232.71958-1-philmd@oss.qualcomm.com> References: <20260812121232.71958-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: gaCKtlVZXlW3UTecUOuRiqOcMkwUVrPj X-Proofpoint-ORIG-GUID: gaCKtlVZXlW3UTecUOuRiqOcMkwUVrPj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfXyajaCrYx5qja Tf4+eiFH+xTysNv3iaVzMSsFMUkxYzEsLDxtLp2VEylVC0/JTdgWmpZ+HQm+Lbvp9DxxejfYk7W XjUEAXvVKcjyctuH0S8wKVKC3oflhpL6OEIVBgsvlQuaVD5crP5+tULCWUl5xeQu4WQxwcXl4Sn 7moCC+EuFuSTI4+TCEadsb8VdgeZAPRNb0hrCo0fgQj7peiJqp451P4PrZlIlr3BC/wGi/T7vFx MvOxrn3rQ2JIgM/r6DnhO70sx4NanFnubEKv0IrSYUiO/h/sc65s4bt8H2NpZwkIaRCNSz0TG0b fglLIgA20MW0969KZw8eB1Gy02P1tuSLATsZxMjDFt16akryE+fXlICCJmywDVKv63Wney/7/bQ UbRbwwmP+k3jV2cPJ5TupPxN6UYGNPLMZB6l27p13fH79obs77nC6TX0prWJFCEjKJcWrEPAL4V ZZdNmRAwUf1h8CysRsg== X-Authority-Analysis: v=2.4 cv=VcjH+lp9 c=1 sm=1 tr=0 ts=6a7c633b cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=jmNSRpmTyL3U9imlh2kA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfXyeaUKdkoQOv4 SuXqTaKS/P18lz/OB1mRK7h0MpiNwql8lY1+Oo+YYlXV7LvXr9xt59JwjXfoOKpLmGAluRDlOX6 MtIX7yoSU8TYXxa1JfkYEjuOblRd8AI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-12_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120099 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1786536790090158500 From: Philippe Mathieu-Daud=C3=A9 Replace object_child_foreach() and recursion by a single object_child_foreach_recursive() call. Propagate the returned value so callers can check it. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/core/nmi.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/core/nmi.c b/hw/core/nmi.c index 4b447e126ba..22724046575 100644 --- a/hw/core/nmi.c +++ b/hw/core/nmi.c @@ -31,8 +31,6 @@ struct do_nmi_s { bool handled; }; =20 -static void nmi_children(Object *o, struct do_nmi_s *ns); - static int do_nmi(Object *o, void *opaque) { struct do_nmi_s *ns =3D opaque; @@ -47,14 +45,13 @@ static int do_nmi(Object *o, void *opaque) return -1; } } - nmi_children(o, ns); =20 return 0; } =20 -static void nmi_children(Object *o, struct do_nmi_s *ns) +static int nmi_children(Object *o, struct do_nmi_s *ns) { - object_child_foreach(o, do_nmi, ns); + return object_child_foreach_recursive(o, do_nmi, ns); } =20 void nmi_monitor_handle(int cpu_index, Error **errp) @@ -65,10 +62,9 @@ void nmi_monitor_handle(int cpu_index, Error **errp) .handled =3D false }; =20 - nmi_children(object_get_root(), &ns); - if (ns.handled) { + if (nmi_children(object_get_root(), &ns)) { error_propagate(errp, ns.err); - } else { + } else if (!ns.handled) { error_setg(errp, "machine does not provide NMIs"); } } --=20 2.53.0 From nobody Wed Aug 26 07:24:35 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786536806; cv=none; d=zohomail.com; s=zohoarc; b=NDNcHJPMlaArur40vhablN2DQG8SOpIYwkR3f2gh2eRxSlMJym3o98WJgorGYsDgqFnxE4Uemr5nntfMBZe9PzOpA9kWcEeQQwtS5kaC3YB2h7LMI5DCU1Ikk4zplynyg5lovpAjtC69gkxmtRpQpksJtwucqRZ4FCr11NyCq5U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786536806; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=7Q6fhegGiu/A6dM+c37Ci4gQqTgdFecpqlNFbfvbjec=; b=hHcDxLHaEQRBEKTdzYHgbsdxwd1c5aqGA/BClMt3bAZ1E2AX2B31lGzwfQTcKahOfy7uhYccDfQD6IJRb+CEdyXYZkSPMBnK4WCvcCMPur7rfYVAvpGwZurQtfPIJv64ECQKfFy/VVAdpER/2bjEV0Na+OOjiySz3XBvNYPe8NU= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17865368061351005.3818222180079; Wed, 12 Aug 2026 05:13:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wu7pP-0006xE-M7; Wed, 12 Aug 2026 08:13:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pH-0006wc-Il for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:12:56 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pE-0007TZ-R7 for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:12:55 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CB480v3319901 for ; Wed, 12 Aug 2026 12:12:50 GMT Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0pmyrfe9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 12:12:50 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c20762d21so14020181cf.0 for ; Wed, 12 Aug 2026 05:12:50 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48150c08dd7sm6510552f8f.16.2026.08.12.05.12.47 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 12 Aug 2026 05:12:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7Q6fhegGiu/A6dM+c37Ci4gQqTgdFecpqlNFbfvbjec=; b=U+shqUxeYbrd++vp BJFNYouUU51IdnjnfCSeCO9aXTVpgb8T15frsuAc+rZDxoVMuqEIQsx5jIUC+3hS ilVA0BICpxag0UGztGS+QNiNFhTKVBHmLvTEa1xmZ12L7UaiO70E/WYakuumyI/4 IuejEtClOi5SHYiARS6IG/Ts4RwpnsxGZYrxANhItcErXTf9dd2ANFGeqxkmRdYG gccSz+dNvSCqzXynyORIBU3zbqMJhztIjQpoSLV22ZcMOcGMFxX89rQhfnRoCxIY x097Hs8bSs7/1Ei4du6froFDyS6cyTZhhKsDNQ/FiT4Mvz2830UpEDCr6u3c8ice okDP/g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786536769; x=1787141569; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7Q6fhegGiu/A6dM+c37Ci4gQqTgdFecpqlNFbfvbjec=; b=ZIgUPXSPkvdTeiJc4pgeFg5rSafdFflAmXh1ZZrfRiPNtf03MbVm9ipLdc74cmCQXA Pkx5WQhiVxUZsk0MSKkYnKRsifZhmZSKMy9y/GKnqdyQBh5NukS5/TgnpDWrNzRIjwSv 7Os2zRKgWkf2teZ35HO2wes+OuG8z5+lZHwOco/eYSdiEpYoxCQWIPj+fjmAbEckuFjX nPtHcPJvimBZuVwQzz1iVu/5VY2ig1BBS2J/SspvMoRClVUjDskdL5JavRuCFu7QN9Vc 0QGyO6uJ8drepa3Gozwe/lkag25usns9fiUn7YFsDN9fNLinu45vPRhE57ZILbbHyCDv WGqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786536769; x=1787141569; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7Q6fhegGiu/A6dM+c37Ci4gQqTgdFecpqlNFbfvbjec=; b=ZJNI8CS0oeMeiwW2RIAePeMjMmLFm7S5VAH5eC438ruxAtcsrAi+eSLcD04jElUHyQ 7PDX+szhGNzoYz8vGHZZXXEv5K+IzVaqHNh9QL/K4yC4yNqFeY1TBGAKoArq9xX7hfzn b/w2UlI6QUrpLO1n1ZvLOPnBiTTaHjUAFDOUwoE7thupOfMaMHh/bhRQSW1u6Rcpe/Ci HAgQ9rGNr6DZkFJi91Mm/Yi/lTYKirihYfunNBdR481ycofRFWvpuU2zvaDfNiYoFnRw TMa2gntY1o5zFBR/jXe9XrEvlEwZtcNu97+izrFbzUq8JM0roGldg6pA4zNvZHM2D39K sCmQ== X-Gm-Message-State: AOJu0YwDQ1b4Z+DTtbr5rSH/0ovNE8jJSNgnJ34ZBNqQqtcEke7+l3R4 XB5lI6B3BJd7AhuMQGj7xetDqRiGy59aThJ2fUvxEurw3luLA5Ci0ZWSHBslG1YioMfgtDhk39N kKVpqJcuo5nZgCjVOFDJCI1aU98mO61bIb04AnIOfQSZAiIiXPfUDcTCrFOF5CYRCMg== X-Gm-Gg: AR+sD11YH4TR9XJZWirC/7IsZIU8QP/oXIHYhZKHRRY7mXyk46zyQPmLhVslr4vtMeM wcvNoc6xXZKqczM5L7QbYoGPQrYjPDuQ9wIi+Pw9YNzSjOnYjUOwatMsUxIK25a/ogZ7pnCmmbq gdiE+OaZq8c5rPYsvOLyeLsNxhq0e1EhFvdhISlxOD0O5HkccZI+4YnLFZGUbgOKa2F0Rz9u202 0gM7vWNmImvc2T3Kcu3KCgfFJ+jrGLR2sGSb1uhW4kgSfxpb+em24tDUwkOHBa+Ru4cYodcUvmy CA1+hRsNfETO/IqLJlKwX95/byBy3jaQIqqAkVKM5ZjDPZLMibwH3tjfmns4kaMmbHG9Z+jniJ0 E6vgLm4W3wG/KxiXzfA7qtwDNzTPdOnssfogiO7v7TQ== X-Received: by 2002:a05:622a:2d5:b0:51b:cdc2:fb99 with SMTP id d75a77b69052e-52d647a2fbfmr33526151cf.24.1786536768941; Wed, 12 Aug 2026 05:12:48 -0700 (PDT) X-Received: by 2002:a05:622a:2d5:b0:51b:cdc2:fb99 with SMTP id d75a77b69052e-52d647a2fbfmr33525491cf.24.1786536768427; Wed, 12 Aug 2026 05:12:48 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v5 2/7] hw/s390x/virtio-ccw: Always inject NMI to first CPU Date: Wed, 12 Aug 2026 14:12:27 +0200 Message-ID: <20260812121232.71958-3-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260812121232.71958-1-philmd@oss.qualcomm.com> References: <20260812121232.71958-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfXx0ZAA5PMl/sz TJjn5xc9hLzrTsVbA7PaTOnYaJ65hoUAEfXE+ABKJnBy61lcWYTYRcDKaaqz2nQ9U14H8MXev88 DL7kCV7XVVl82fOy9POusKs43cUAsjg= X-Proofpoint-ORIG-GUID: pQu4X9wUQCODMbxNR21TQuwr1j3wftoB X-Authority-Analysis: v=2.4 cv=C/fZDwP+ c=1 sm=1 tr=0 ts=6a7c6342 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=KKAkSRfTAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=VnNF1IyMAAAA:8 a=43zqHlSF2DfHiYptYdwA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: pQu4X9wUQCODMbxNR21TQuwr1j3wftoB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX5TQhqU2AbnUQ fouoMCZf48iNQ4YzPiM2z+sRKJjbgEXoPgIUUfQSVrBTUyZez7P46zhQ1xTeuvC3WG6Sl3HiLbm Uvb7BqKpQiKAomFTJSlT1WvBjAAuKsLHtepobUpVyMDnO5dqP2QRK7qt418aG/M6J4+WX4GJvy2 DRxWgmRALKa6uIawJIWyOymwhvqnDhK7EZYzGhDNGZb84MyNFCUQaE1SYxGUPm6luqj0jfDpCfs vsDsYy8QUDNps3WUdKV7Xggh7KU4eVGaSGPUG8pEOzLDYuuPNA4PhDQqJib/BYfMzLgO1XdBh0J v2yyJUrKx1XoFJaxJP+ACv7o4El4cX/ggdRK6FLhIozEi9AZOkImqY2R2s3eMhM08cF85IEAqby +T22NFAietr01ddHuoP3m4griHqOS6TALeIGutfSy+p9ZN/SriiVk+eoUQ63uXnTxRupjku8yqR v/ozcPXoZqjKSA60bxg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-12_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120099 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1786536808371158500 From: Philippe Mathieu-Daud=C3=A9 We can trigger NMI from HMP or QMP. QEMU maps the NMI to the s390x per-CPU 'RESTART' interrupt. Linux guests usually setup this interrupt to trigger kdump or crash. Such crashdump can be triggered in QEMU by HMP "nmi" or QMP "inject-nmi" commands. Using QMP, since we can not select a particular CPU, the first CPU is used (CPU#0). See the documentation from commit 795dc6e4 ("watchdog: Add new Virtual Watchdog action INJECT-NMI"): @inject-nmi: a non-maskable interrupt is injected into the first VCPU (all VCPUS on x86) (since 2.4) While we can select a particular CPU on HMP, the guest behavior is expected to be the same if using CPU #N or CPU #0. Since always using CPU#0 simplifies API maintenance , update s390_nmi() to inject NMI to the first CPU. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell Reviewed-by: David Hildenbrand Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Eric Farman Reviewed-by: Marc-Andr=C3=A9 Lureau --- qapi/machine.json | 7 ++++--- qapi/run-state.json | 6 ++++-- hw/s390x/s390-virtio-ccw.c | 4 +--- hmp-commands.hx | 5 +++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/qapi/machine.json b/qapi/machine.json index 9b2248038fc..2d63c1bac3b 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -432,9 +432,10 @@ ## # @inject-nmi: # -# Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or -# all CPUs (ppc64). The command fails when the guest doesn't support -# injecting. +# Injects a Non-Maskable Interrupt (machine specific: for example on +# s390x CCW only the first vCPU receives the NMI, but on x86 machines +# all vCPUs receive it). The command fails when the guest doesn't +# support injecting. # # Since: 0.14 # diff --git a/qapi/run-state.json b/qapi/run-state.json index a5771ad4681..e4fdead1e0b 100644 --- a/qapi/run-state.json +++ b/qapi/run-state.json @@ -317,8 +317,10 @@ # # @none: nothing is done # -# @inject-nmi: a non-maskable interrupt is injected into the first -# VCPU (all VCPUS on x86) (since 2.4) +# @inject-nmi: a non-maskable interrupt is injected (machine +# specific: for example on s390x CCW only the first vCPU +# receives the NMI, but on x86 machines all vCPUs receive +# it). (since 2.4) # # Since: 2.1 ## diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 25a9fa49554..4f7861dbbb7 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -727,9 +727,7 @@ static HotplugHandler *s390_get_hotplug_handler(Machine= State *machine, =20 static void s390_nmi(NMIState *n, int cpu_index, Error **errp) { - CPUState *cs =3D qemu_get_cpu(cpu_index); - - s390_cpu_restart(S390_CPU(cs)); + s390_cpu_restart(S390_CPU(first_cpu)); } =20 static inline bool machine_get_aes_key_wrap(Object *obj, Error **errp) diff --git a/hmp-commands.hx b/hmp-commands.hx index 7ae2468a3d9..a1b77ae4044 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -865,12 +865,13 @@ ERST .name =3D "nmi", .args_type =3D "", .params =3D "", - .help =3D "inject an NMI", + .help =3D "Inject an NMI, in a machine-specific way", .cmd =3D hmp_nmi, }, SRST ``nmi`` *cpu* - Inject an NMI on the default CPU (x86/s390) or all CPUs (ppc64). + Inject an NMI, in a machine-specific way. + Not all machines implement NMI handling. ERST =20 { --=20 2.53.0 From nobody Wed Aug 26 07:24:35 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786536806; cv=none; d=zohomail.com; s=zohoarc; b=LaYe75ga5J/giTaRaiF9sMc2ILrwZ3tLoxovyXm+OLMYTrL/uuvh8BXefRSilgwkbenwAPuyr2kMzgA3//TIGQekNzsjclrxuSlbQRjxQ7F1nvzIxnusiCSlXik+hhiwfjqSgzIaTv7/tdUGHmrB8Jn198f3guPWnUGdNzjPEp0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786536806; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=zCA+9dgAGufk368/sCekoHYXZzEAVfMYc8ljN/zifGg=; b=fkREmlr9YweKwMnVHX2gr/W5pAgyUeHxSFmHzC9uSwhkq9LbrxE08UREeEM7wAKmsCbMUCp7Go1QCb8OXoFj/3TRhzNH04YNg/pDCZ/6MphylqRvhNBScrEythI3gQ5HNgyZopR5o1Ii2ZblRJhCSQor+jaa9F/Kau7Mzw8ZT9g= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786536806394300.32172805181006; Wed, 12 Aug 2026 05:13:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wu7pV-00070l-IR; Wed, 12 Aug 2026 08:13:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pN-0006x9-JZ for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:03 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pK-0007Uh-Gi for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:00 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CB4CFs3664634 for ; Wed, 12 Aug 2026 12:12:57 GMT Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0m6rh3p2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 12:12:56 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52b4f6ac06aso15808371cf.1 for ; Wed, 12 Aug 2026 05:12:56 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4997c946ce1sm42492555e9.5.2026.08.12.05.12.54 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 12 Aug 2026 05:12:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= zCA+9dgAGufk368/sCekoHYXZzEAVfMYc8ljN/zifGg=; b=nRURCD6+346+BQW+ sHFN00ZT3oRz7y2lsWqIE+nnC6DlTGfPgLAx4lBFm3KJ/gVHoKdj0aYXEhws68kE YzPB6F/F//d+sn+Uvz6hKYuWRLZZ9ID2Io1/PjXSfV6F3qfvhTiW6AsV+uIcK5Y0 JmK02jHitHyMjoUmcphqWpcIBu6SJzsAZIYpWm0CE0tzlZR+E7MWt37WrEZCMEO9 hRSba657esc0NQmftUzpbVTyFrbptB6q7UnW/xIaOEnc2ID5Wsy+pVwknkV9BJUL sF9sTvzFCGKOiuCpM45mwg8FeXXz69/6cSln4n9SbOJDfMMHwTEzmKOncT2CLya0 AzH9/g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786536776; x=1787141576; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zCA+9dgAGufk368/sCekoHYXZzEAVfMYc8ljN/zifGg=; b=Hy9qWsAz4LcuHv5s52zG5eUGo/T+O03u9BgtfW/9ZlpUxBtLU+J9l/rtcpwL40buBd dlTLLWYCne4nW2pApfKOPDDiTprqD4rxVhbegtcMqfwmz6Co5ixXUNmdYewCHaDQ8qsA hsYhsTm4rogsFSMiugcj1zFActHEPp2DBg+wiDxPJjooEf6mq/eVTyrPDpZqKFKNB7yZ XEi+Wf8mMj6MnBhKpZlyVMnNm9cXUzffci/klp8jAwqd5fJoUhYBDswb9SlYPKQOb1K8 XouT4JlmrypWYb6n9qI26Mi7Ttewtex4flmFh7zeQXIcnOJe+jKRXBGoQHXuwA1dMf2N 8qcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786536776; x=1787141576; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=zCA+9dgAGufk368/sCekoHYXZzEAVfMYc8ljN/zifGg=; b=jgmZJttE7Wu+Xj4XGraudXjWCvh0h+viAfAZwVQhezxj1OJDP+YdkXzOEKaVYjrpN0 zRhvPr413mBEmvKchASf8uN2rDPpkFVGVXtvYRaJ3TwqAvdOYcyzKcHR5DS7HaRMaIVy q99Zo0+35WcGZefow6z6QWi9wtoNwLAYTLFBpRn1guTq5VOV2OGEeIpbvueBdXU1//VI q8VYRJpx0hXPLp/i9k+7j4xCAe8a8eIC0HwrrbYa+AETbMlYETzpLSer2xskOVDFC9mf GGPQCuQloF2JKqOF6tcZo53DOLbDnP1cEyNdEO+8gn0XDdWSpAVHh9fBjdzzKLsKB4+0 aipA== X-Gm-Message-State: AOJu0YzCMM/lTl06alNWwsqgyPWJdL62x0u8oJWgnIWZeGOO+DTRKWUY 7Ww5FHtLXZnLnl9LCEcv+OGS6Bvz8SIguipYNlWZpScbREne3IEdM0ueX93pyP2pcCkC8X37Ea3 1LbG9oJRqdCBXYXzMSAGuoq2vS2CHd3I0l3WCT2Q28OYJKQ7VZ05yeB14k6x7hpLEMg== X-Gm-Gg: AR+sD11goQXa6r4fklLUMkGMH2Sife7sQtO9HMwfTK9dOaM9/NcQsnf8DX0B5Lk17FJ tK5Oh2z1SfJiKfEX7pEtaWo7CxjpDchdOKczCDnr8WSWo10EimXXAQAiop1vjYYY+SuY4fK/Mvn Ydfwua9bMyOqfQ2sX5GVCdqnE50I+nKzRjmLIE8mZsuwWpYjDhHCx0Q2YMGTFYzjb4GrIbzQtKP v3ovq6wqWVt4JF1DeFEoVN80MlixRSdmoEasDOtuVQW+9k2WvpoWrRRK/3jUPpO9UdueXSV55q5 TD0hjR3HyU0Df72h+Rom274iGzlKyMmNDILHpip3LUHnhhtJhkdbJquNUOYPPjKRc04kd8tufJZ AATRPn9IJrB6or64feU0nu/V6CLtsCRB8fRbtDqVbrw== X-Received: by 2002:a05:622a:1a9b:b0:51b:fe3c:6c1 with SMTP id d75a77b69052e-52d647f3112mr33151611cf.27.1786536775891; Wed, 12 Aug 2026 05:12:55 -0700 (PDT) X-Received: by 2002:a05:622a:1a9b:b0:51b:fe3c:6c1 with SMTP id d75a77b69052e-52d647f3112mr33150831cf.27.1786536775282; Wed, 12 Aug 2026 05:12:55 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v5 3/7] hw/nmi: Remove @cpu_index argument from NMIClass::nmi_monitor_handler() Date: Wed, 12 Aug 2026 14:12:28 +0200 Message-ID: <20260812121232.71958-4-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260812121232.71958-1-philmd@oss.qualcomm.com> References: <20260812121232.71958-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX1Nkd1Em04BX1 YpGCeY93450//2hIqYvCNHTHOTLr+bgrukhMcVPUY9ytxmG1qdMsMuZ3ZJA1qtZIFN9aUtU45To X/RPPhUa/dAf3xU5mcLLtq+iCmT+6PDt0BEGbeHIUVSEG84v50o5u61GID4p26L7de0zgr5TlJj efoL2d7YgbRTtblCdhz6e3Uwex+sSGCUpwGkR4thqNDoDyLzlRMpNt+fGHI8ypKF8i27Ndtlfce dUYLaKZDlF6jhgh2Is9To8UwO75T2D38Rs7hiLoKL7cxea4vnaVNDI5/eqD79k6+3F+GETIJZgY p0uyVDaLOsPBLO3k1xLxvxS0TISYbCm/szFgIxLcR5iz4aPXPnSsnQEwhjTeAcTmi6WL2UI+kPl Uv8D45PBzfinjlqLVy3KkK8tSg73yCYpZpEnGxoE3ozS3pBfA5zt/woyrBelGrQMZiIBduBMjTj hsrDsNqc/8bNsKiWUcA== X-Authority-Analysis: v=2.4 cv=Wb08rUhX c=1 sm=1 tr=0 ts=6a7c6348 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=KpD7k0r93PjNlcRUnYkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: _6VRce8jR4liBCYbokJ92Z21fWJ9HefA X-Proofpoint-ORIG-GUID: _6VRce8jR4liBCYbokJ92Z21fWJ9HefA X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfXxecLqsXx5NSH C1DIZP6eXk6Kh7eyromBVoAdCnn5Nr0TPth1Gpv8tmMB1rejWWIELbl/LZelb58ujRV9Z49RqBs HNYVXyIA0pARw0CofNtlOSQi6a72q5M= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-12_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120099 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1786536808394158500 From: Philippe Mathieu-Daud=C3=A9 Only s390x was using the 'cpu_index' argument, but since the previous commit it isn't anymore (it use the first cpu). Since this argument is now completely unused, remove it. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell Reviewed-by: Marc-Andr=C3=A9 Lureau --- include/hw/core/nmi.h | 8 +++++++- hw/core/nmi.c | 2 +- hw/hppa/machine.c | 2 +- hw/i386/x86.c | 2 +- hw/intc/m68k_irqc.c | 2 +- hw/m68k/q800-glue.c | 2 +- hw/misc/macio/gpio.c | 2 +- hw/ppc/pnv.c | 2 +- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 16 insertions(+), 10 deletions(-) diff --git a/include/hw/core/nmi.h b/include/hw/core/nmi.h index fff41bebc69..4c4ce79071d 100644 --- a/include/hw/core/nmi.h +++ b/include/hw/core/nmi.h @@ -37,7 +37,13 @@ typedef struct NMIState NMIState; struct NMIClass { InterfaceClass parent_class; =20 - void (*nmi_monitor_handler)(NMIState *n, int cpu_index, Error **errp); + /** + * nmi_monitor_handler: Callback to handle NMI notifications. + * + * @ns: Class #NMIState state + * @errp: pointer to error object + */ + void (*nmi_monitor_handler)(NMIState *ns, Error **errp); }; =20 void nmi_monitor_handle(int cpu_index, Error **errp); diff --git a/hw/core/nmi.c b/hw/core/nmi.c index 22724046575..ff6454437c1 100644 --- a/hw/core/nmi.c +++ b/hw/core/nmi.c @@ -40,7 +40,7 @@ static int do_nmi(Object *o, void *opaque) NMIClass *nc =3D NMI_GET_CLASS(n); =20 ns->handled =3D true; - nc->nmi_monitor_handler(n, ns->cpu_index, &ns->err); + nc->nmi_monitor_handler(n, &ns->err); if (ns->err) { return -1; } diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index d762163ddf5..2b44debc388 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -829,7 +829,7 @@ static void hppa_machine_reset(MachineState *ms, ResetT= ype type) cpu[0]->env.cmdline_or_bootorder =3D 'c'; } =20 -static void hppa_nmi(NMIState *n, int cpu_index, Error **errp) +static void hppa_nmi(NMIState *ns, Error **errp) { CPUState *cs; =20 diff --git a/hw/i386/x86.c b/hw/i386/x86.c index dc7f0d56b01..0ea5453403d 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -147,7 +147,7 @@ static const CPUArchIdList *x86_possible_cpu_arch_ids(M= achineState *ms) return ms->possible_cpus; } =20 -static void x86_nmi(NMIState *n, int cpu_index, Error **errp) +static void x86_nmi(NMIState *ns, Error **errp) { /* cpu index isn't used */ CPUState *cs; diff --git a/hw/intc/m68k_irqc.c b/hw/intc/m68k_irqc.c index 68ddb5351be..bc41b44d455 100644 --- a/hw/intc/m68k_irqc.c +++ b/hw/intc/m68k_irqc.c @@ -70,7 +70,7 @@ static void m68k_irqc_instance_init(Object *obj) qdev_init_gpio_in(DEVICE(obj), m68k_set_irq, M68K_IRQC_LEVEL_NUM); } =20 -static void m68k_nmi(NMIState *n, int cpu_index, Error **errp) +static void m68k_nmi(NMIState *n, Error **errp) { m68k_set_irq(n, M68K_IRQC_LEVEL_7, 1); } diff --git a/hw/m68k/q800-glue.c b/hw/m68k/q800-glue.c index ac9062c6488..b13e5ef95f1 100644 --- a/hw/m68k/q800-glue.c +++ b/hw/m68k/q800-glue.c @@ -159,7 +159,7 @@ static void glue_auxmode_set_irq(void *opaque, int irq,= int level) s->auxmode =3D level; } =20 -static void glue_nmi(NMIState *n, int cpu_index, Error **errp) +static void glue_nmi(NMIState *n, Error **errp) { GLUEState *s =3D GLUE(n); =20 diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c index 1a7c534d652..1bdca728f97 100644 --- a/hw/misc/macio/gpio.c +++ b/hw/misc/macio/gpio.c @@ -188,7 +188,7 @@ static void macio_gpio_reset(DeviceState *dev) macio_set_gpio(s, 1, true); } =20 -static void macio_gpio_nmi(NMIState *n, int cpu_index, Error **errp) +static void macio_gpio_nmi(NMIState *n, Error **errp) { macio_set_gpio(MACIO_GPIO(n), 9, true); macio_set_gpio(MACIO_GPIO(n), 9, false); diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index c0cb45dbfbc..8676be7bbb1 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -3552,7 +3552,7 @@ static void pnv_cpu_do_nmi(PnvChip *chip, PowerPCCPU = *cpu, void *opaque) async_run_on_cpu(CPU(cpu), pnv_cpu_do_nmi_on_cpu, RUN_ON_CPU_HOST_INT(= 0)); } =20 -static void pnv_nmi(NMIState *n, int cpu_index, Error **errp) +static void pnv_nmi(NMIState *ns, Error **errp) { PnvMachineState *pnv =3D PNV_MACHINE(qdev_get_machine()); int i; diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b79828b4e90..189334b9f0a 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3550,7 +3550,7 @@ void spapr_do_system_reset_on_cpu(CPUState *cs, run_o= n_cpu_data arg) } } =20 -static void spapr_nmi(NMIState *n, int cpu_index, Error **errp) +static void spapr_nmi(NMIState *ns, Error **errp) { CPUState *cs; =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 4f7861dbbb7..5d8a73a63df 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -725,7 +725,7 @@ static HotplugHandler *s390_get_hotplug_handler(Machine= State *machine, return NULL; } =20 -static void s390_nmi(NMIState *n, int cpu_index, Error **errp) +static void s390_nmi(NMIState *ns, Error **errp) { s390_cpu_restart(S390_CPU(first_cpu)); } --=20 2.53.0 From nobody Wed Aug 26 07:24:35 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786536838; cv=none; d=zohomail.com; s=zohoarc; b=VA9gN8i6pzPKivrzznneY+c9n1ORB9p9pVCWZ2vnzF4CR0gjOxRp3jVNIU0DJs30VdhLrcuKoC09LP/Uxqu8LXOX4HsB+uNPMT1IQni2OR9mEJfAeCccUTRuDnaDXhlNrIsc6lQGYtaPUWAXgLH5595MT1GQaERRobqhL1YZdpo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786536838; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=+D8rA1Tq9MPno3w70GrJ/i26NF9WPbxp5pAHVjnjEx8=; b=Z4DS1gpdXImswqqLcEill9s7J3XVmeLbXc70EyEMywRguXBy4tSSxNO06phGF4JlRy0N8VhHnSLwwDFMJlyB6zk5DvrHE2UFRbOPY5i/TnU0gJ1+eiVthWrV8XFIqrwjWV/bTteIqdraraQfMzkLfJcenz9WZ/mnoVzK7XH6cT0= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786536838813344.0208114119414; Wed, 12 Aug 2026 05:13:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wu7pW-00072P-OJ; Wed, 12 Aug 2026 08:13:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pU-0006xp-B5 for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:08 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pR-0007WF-Nh for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:07 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CB4CB5569131 for ; Wed, 12 Aug 2026 12:13:04 GMT Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0nut8pb5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 12:13:03 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51bf321d786so14675541cf.1 for ; Wed, 12 Aug 2026 05:13:03 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4997aaa4d2fsm70097865e9.1.2026.08.12.05.13.01 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 12 Aug 2026 05:13:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +D8rA1Tq9MPno3w70GrJ/i26NF9WPbxp5pAHVjnjEx8=; b=JXn+Y1A+mhtEQbOS Hzlvu7y/0QRRad+IteCgNeZ9v6o2miM2Xf1bTjpiHcjnCfSBZGIdgju4Wj1E5Imd XbOqpyHe+vMBoKFr38uB6e2vYa4pOAVYCb9GcvaDmjA/8RwhYX2ZukUyQh/3dNqD 1bvToJxlo6m2TtHp1+4j2OOQhiyZx0y2Z0vGhEN3I9PloH/Jv13YPEpCqesPmxg4 0NfC/14zLSwzN5j/1qYSJbMfFFU9aBht6X+jM1Gjz+AC/GVyTbqPaEOV5ExLkGBf InSH50584FPNSxhqrZ/Zc5KZ08kUvExVSZ3C36P+lMBACVy0NNxsIM4VQSC73T44 pf1SDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786536783; x=1787141583; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=+D8rA1Tq9MPno3w70GrJ/i26NF9WPbxp5pAHVjnjEx8=; b=YZLpUoupa/m66DoFPhnUVJjhkP1UgtssZAv0tEIxBABCzJj//9idmJp1Y3cy3q/MAv i9zJ3IXSoT4SHvtLRyybAV87OzDDeWwrykqiToNwhz7sP+bp7GrrJZqHEK31uJ7ua2+7 NcGtEWIsjVxqWrwBGVjYtIyj0/OSd082jCWMM+TVLCeMyRRIihm4kziZ1N99aGshqe8D SBOXxOTeilRaoInHPN6cair8LEOoUH/MKyCF1z4CIfOcR4MjBWgOUQvZmnyd4VhpQU0z f04JstsaJ4LUK+uAOQT29NVk4x8GTtm93PyQWi7uxf74dcko/TsrLyWwOTQtTi3nwguU t1cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786536783; x=1787141583; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=+D8rA1Tq9MPno3w70GrJ/i26NF9WPbxp5pAHVjnjEx8=; b=b/FwOqd9+5x7BueFXCyT5G+9b5hLHMeG0VzdPizU4TYu00OXm7SuTeiMMJcrryaNm0 7+dnbweMsYdmc0D0VytNTw+cAA6vFckA8sR6HLXusII8eD/zfE5rJT2iDNphmOWxntEo rX/szVtFXLsVawWfDKU0L0moce47lOUPcLuLRGfC6kn3Ep5d/11+LpSPBu0KGob4A47G AvjdOLsgyG1BcM5Dx5QP+G+OuZejXQbYUc8CJRwzrXPNFCjE9tcqniquS+8vYvL5WemV pyluJ/y4AuW7XnevP/1J7+mgUXmQ5XyVypaKiy8YgVNmQ1rWMUJIVkfPOb1g6kk/m/ot fuXg== X-Gm-Message-State: AOJu0Yw5MadxRIrkb47f3PfQxc4+4T+0W8IdwTJd873HhWN6QLn90dkC Yhonx8hMujU8lXlu3WmCasuScarRPYw55JgEB4zSnx9TsNV77XMOty1SLNQ+wb1VX5ArNW5UWV+ wxQkwNLjHWzkCZI/z/IMqwr1dge6Kiz+4mbgZCMAenWK7bI2a4ICNBLLTHGDFryEKlw== X-Gm-Gg: AR+sD11J2wdp1udWygoZpMjBTfBzr2xk4fPbfm+zPK4FMb0NvZftzDvFy4s/0MmJ3qV elarTHJpltRN34ITp42ZfR8TrPoU4nP36N2f8PMxxUmMc5CPM8Y/lDXwjKurNCeasgT2HjE5VkY IZwpB4d+Nvt+vTIWxm5n2/B+54ahZygKUdigc5YWa5/qvgC8rxaOsFBTbrQFjyFy/zezMwt9Wwv 10MPFoh5JXXwrhkWW/jiPorneHDejuZmdpqFMKTXH7r7AL20cg6TSEBRf868uUingjGSVf3zxNL xO8D1QPeKWPn3RlQX1CqQCyHFCYk+Q51cgpTVnLjMSGA/mksHlsW1bAlKYunP8Yuv5hXxZnLra5 TuC2Aj452VdZqdR2K/ke6GEbEcmE2ZdSQPWQoFQg5gA== X-Received: by 2002:ac8:5c93:0:b0:51c:1117:c6a with SMTP id d75a77b69052e-52d646a003fmr34908281cf.4.1786536782964; Wed, 12 Aug 2026 05:13:02 -0700 (PDT) X-Received: by 2002:ac8:5c93:0:b0:51c:1117:c6a with SMTP id d75a77b69052e-52d646a003fmr34907651cf.4.1786536782372; Wed, 12 Aug 2026 05:13:02 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v5 4/7] hw/nmi: Remove @cpu_index argument from nmi_inject() Date: Wed, 12 Aug 2026 14:12:29 +0200 Message-ID: <20260812121232.71958-5-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260812121232.71958-1-philmd@oss.qualcomm.com> References: <20260812121232.71958-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfXzrjczYjybBIQ zV+ukrrKc0t8q3B2RdnoyLqi1ur1tLq36jkUKY4qqMY2xrT0BaZVY7RWyw+Jq5tvfG0UOvOfiCZ hepw6m6vqMJMhF5+AQEJCBFy6MHkCOU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX7j0jG9U8XXC7 Ll3bKIJtBg7ShVLg73K+OKC+LwxfwONNSGUf++ZSXecQK0JhiGcWleXKS6GB1wvGOblu5lNwQRw lSJRQmh1k97ra8ylKr5VqdbblVgr6isqp7pD34mP67iBtUxQ9McP+3oYxTBwPXrMZl5D8DuXYDr YHdfOoDA8h2UhSqwGXSikRL1sztfX0c+CjMmYgiyHC6NVKgv2m/WyBUqno4kZl4QkNmu/xQBTfR Y0A5Ni18X3oJuxddAwlOa2y72JCOrB50TzsNB+LOR4XA/PEaibvTN4tO8axiKyVjozAGOTzpYpj TSfcN1YHLe/Aow+DU7CJSM6ymD3R9ou0ENEQSmZAcCuXEZ2jfmgFJM2XTcM9Woc6I6mMs71lLl/ 3KX30PnVJYnB6tpK5BK9BrEmftLLx/22dG2CObHT/OobQOYyy0nFP9rlHDC1eyGNOnMETtSWx5q PCtcL/T8fXCJjSQpjsg== X-Proofpoint-ORIG-GUID: aftIUSj4zTNzEACQO9zaguJnMxhRaTDY X-Authority-Analysis: v=2.4 cv=POA/P/qC c=1 sm=1 tr=0 ts=6a7c6350 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=BCSMXUZzsmg2-BZsF7kA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: aftIUSj4zTNzEACQO9zaguJnMxhRaTDY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-12_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 impostorscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120099 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1786536840321158500 From: Philippe Mathieu-Daud=C3=A9 nmi_monitor_handle() is not related to the monitor, rename it as nmi_inject(). Return a boolean value indicating success / failure as recommended by the Error API since commit e3fe3988d7 ("error: Document Error API usage rules"). The 'cpu_index' argument is not used, remove it. This officially drops the current CPU for HMP command. Document nmi_inject() as suggested by Peter Maydell in https://lore.kernel.org/qemu-devel/CAFEAcA-yALySmCJLbitCmYpiZKUXJNOavGJG9RY= eo8fKqz7gcw@mail.gmail.com/. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/core/nmi.h | 24 +++++++++++++++++++++++- hw/core/nmi.c | 9 ++++----- hw/ipmi/ipmi.c | 3 +-- hw/watchdog/watchdog.c | 2 +- system/cpus.c | 3 +-- hmp-commands.hx | 2 +- 6 files changed, 31 insertions(+), 12 deletions(-) diff --git a/include/hw/core/nmi.h b/include/hw/core/nmi.h index 4c4ce79071d..851be28257e 100644 --- a/include/hw/core/nmi.h +++ b/include/hw/core/nmi.h @@ -46,6 +46,28 @@ struct NMIClass { void (*nmi_monitor_handler)(NMIState *ns, Error **errp); }; =20 -void nmi_monitor_handle(int cpu_index, Error **errp); +/** + * nmi_inject: Inject an NMI, in a machine-specific way + * @errp: pointer to error object + * + * This function injects an NMI, in a machine-specific way. The + * intention is that this should typically trigger a guest kernel + * dump or reboot, and might happen as a result of user request + * from the monitor, watchdog timeouts, and similar events. + * (For example on the x86 PC it triggers an NMI on all CPUs, + * and on s390 it triggers the RESTART interrupt on the first CPU.) + * + * The NMI is injected by looking for a QOM object which implements + * the TYPE_NMI interface, and calling its nmi_monitor_handler method. Usu= ally + * it is the machine model class that implements this interface. + * + * Not all machines implement NMI handling; this function + * will return an error if used on a machine which does not + * implement NMIs. + * + * On success, return %true. + * On failure, store an error through @errp and return %false. + */ +bool nmi_inject(Error **errp); =20 #endif /* NMI_H */ diff --git a/hw/core/nmi.c b/hw/core/nmi.c index ff6454437c1..2d890f2995d 100644 --- a/hw/core/nmi.c +++ b/hw/core/nmi.c @@ -22,11 +22,8 @@ #include "qemu/osdep.h" #include "hw/core/nmi.h" #include "qapi/error.h" -#include "qemu/module.h" -#include "monitor/monitor.h" =20 struct do_nmi_s { - int cpu_index; Error *err; bool handled; }; @@ -54,19 +51,21 @@ static int nmi_children(Object *o, struct do_nmi_s *ns) return object_child_foreach_recursive(o, do_nmi, ns); } =20 -void nmi_monitor_handle(int cpu_index, Error **errp) +bool nmi_inject(Error **errp) { struct do_nmi_s ns =3D { - .cpu_index =3D cpu_index, .err =3D NULL, .handled =3D false }; =20 if (nmi_children(object_get_root(), &ns)) { error_propagate(errp, ns.err); + return false; } else if (!ns.handled) { error_setg(errp, "machine does not provide NMIs"); + return false; } + return true; } =20 static const TypeInfo nmi_info =3D { diff --git a/hw/ipmi/ipmi.c b/hw/ipmi/ipmi.c index 74818ff3cea..dedf23cb997 100644 --- a/hw/ipmi/ipmi.c +++ b/hw/ipmi/ipmi.c @@ -59,8 +59,7 @@ static int ipmi_do_hw_op(IPMIInterface *s, enum ipmi_op o= p, int checkonly) if (checkonly) { return 0; } - /* We don't care what CPU we use. */ - nmi_monitor_handle(0, NULL); + nmi_inject(NULL); return 0; =20 case IPMI_SHUTDOWN_VIA_ACPI_OVERTEMP: diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c index 0842fe373ae..5f764a0c1b8 100644 --- a/hw/watchdog/watchdog.c +++ b/hw/watchdog/watchdog.c @@ -81,7 +81,7 @@ void watchdog_perform_action(void) =20 case WATCHDOG_ACTION_INJECT_NMI: qapi_event_send_watchdog(WATCHDOG_ACTION_INJECT_NMI); - nmi_monitor_handle(0, NULL); + nmi_inject(NULL); break; =20 default: diff --git a/system/cpus.c b/system/cpus.c index 97e5a5edee2..9758cda4636 100644 --- a/system/cpus.c +++ b/system/cpus.c @@ -23,7 +23,6 @@ */ =20 #include "qemu/osdep.h" -#include "monitor/monitor.h" #include "qemu/coroutine-tls.h" #include "qapi/error.h" #include "qapi/qapi-commands-machine.h" @@ -926,6 +925,6 @@ exit: =20 void qmp_inject_nmi(Error **errp) { - nmi_monitor_handle(monitor_get_cpu_index(monitor_cur()), errp); + nmi_inject(errp); } =20 diff --git a/hmp-commands.hx b/hmp-commands.hx index a1b77ae4044..b21f361ada0 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -869,7 +869,7 @@ ERST .cmd =3D hmp_nmi, }, SRST -``nmi`` *cpu* +``nmi`` Inject an NMI, in a machine-specific way. Not all machines implement NMI handling. ERST --=20 2.53.0 From nobody Wed Aug 26 07:24:35 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786536812; cv=none; d=zohomail.com; s=zohoarc; b=eDjK3bspuhWIGzpXvzhU1PajKVZP9e5Tg1JHK4jqVujQk0oLf7NG3PX1pCFQF6sIUUkxsucDP/tSUWaV5Ks9Kk4653mXEzadHlsw5Va1Ek0jfN/ulE154ViqmbgCeRjBqjSe/vX/dMb5vexFmPOEcHoUyFwLTEGQ0dG2LPx4Y5k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786536812; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=BzxWp6a13iMDHUY1cIEZUz72MRz0K1yfhW98Q2txljc=; b=T6zpJAM/INoPWPqzhHx1xb+UszDr94+ZY8UEnG6UqsI10Wix2u9W3EMNHsFZF6HJ+ypH9Fo+NsWfm3H9M+iSic6ew3cT25BR1dGguN6J92mHs6dnbLrQRr/18bTvSZkcQexWztEADN8C0dHhTKf34UIEg+Iz65ZY9+9nwq/JqH4= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786536812985277.83601068318114; Wed, 12 Aug 2026 05:13:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wu7pc-00074X-84; Wed, 12 Aug 2026 08:13:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pa-000743-H7 for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:14 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pY-0007Y3-G1 for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:14 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CB4BjZ569115 for ; Wed, 12 Aug 2026 12:13:11 GMT Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0nut8pbh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 12:13:10 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c12e43b98so10687571cf.1 for ; Wed, 12 Aug 2026 05:13:10 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4997c939750sm44289245e9.3.2026.08.12.05.13.08 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 12 Aug 2026 05:13:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= BzxWp6a13iMDHUY1cIEZUz72MRz0K1yfhW98Q2txljc=; b=O8Cz08vol0h0fwG1 Lxq4enFZgbv+RWcNzdIPiUbwyDv3tF3/ZjTLE7Kh5ojaoQzA0IY3Ef2yHnbtwZII e3ErbkVii9Iq57cGjnfZq2jfUDZxsPIdcnNOcYzDCFo7vy395iPEaZboV3eFT+mt QNWpqPwu8aIHP6Z5WCfVbqeEUdrLnS4NObysKBNL0ZnCT3ar1wqFfkwbt3FMgTP/ ep3tVKg4nm3wBsplCArFWP5vnqt2dCGMOnyNu4syxQ+9TNPbFsSzfGjEkqSBAn5q +pF8BJ5craBv0lYo66V4oTvEyLxdLht+ljRSX7eALoxR3rz46C6bRsBGxn1FN2ID Ix7JYQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786536790; x=1787141590; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=BzxWp6a13iMDHUY1cIEZUz72MRz0K1yfhW98Q2txljc=; b=DpCG5HQFfZp2sjlSOUza/TsBqNH8b1wuUyGiuvkL12Ai+tMqYFdVDVotf+1WLUgiuB hqSkClenpq3vNmKa33wO43brto1sWgW4SsaBYJWN8sCatsr0X++AltkoopU5W8EL1KoL EYi64BqIEecNKbyvTFc51/csrF5kdGZHbjWq2T5p1gYRT6amDJJsbFyekqefY1CWTPb2 rR/OG/uX3kQpxWkj8ZlrTQ4CDbX+kMm/HinyUeZe+E5Jy8MloBWRw9jBr5K7gGwUEjLh j6i+/kmqB7z0/DkDD654oaiw8hddkyRxyLIYzHv3RUY/o7DSTB9SXcFxl2leMHEiZNH3 PuGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786536790; x=1787141590; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=BzxWp6a13iMDHUY1cIEZUz72MRz0K1yfhW98Q2txljc=; b=oLAOr+Qs9jn0n7cB/kUkguEiIR0QJWcbRarRe3iMJDLfeMWcrbPOSpysHEP8acCUe+ cfaKz4ECbAewSc5ZaA4B3HRR7NwF13iXacx5tEjCoka56czDg79HDl/r3g3UgkW1RPlf a8LtcAo0fblgd/f3/emUKMOsluSqOl+ELppSE7l+K8rsP37NH5Pz/xNUZ81Pv5bZkR6s oF3mFYAl6osu/qZqr/yvR4UfnUSgbSnMrfOSBI0EXybVdNQI/LbmgSWTHyioSrlD/7Ys JeFle1xsw2m6MU1gLhjowFlrDOKnn0TmkxoZiVybf5ftpNt2DzrWeK2ECt05HcX1S9Zw czZg== X-Gm-Message-State: AOJu0YxfBLmxkxuUgcYkO9REQVNJ4MHVCVXLdtqd0xlSrEPz3KHWLPQE EQtDaCZ3iEBogoxxUIJwQ1K7f/yqTmKbjUxrYUJc25RBEH8/nNLHJVDK8dbXgo8/4VfYZnSOBu7 buJHoKDbPdnk+GmAR2DRtRZds96OWDbaLQZnhUl4eDJfrIgzIShWoLJb9c/XCmkj/3g== X-Gm-Gg: AR+sD122pJmEs/mWRXDJRlYAJz5igUASiONp72KAmr5OkJMeFgFxQelN8ZG8Idx0v8m EAiXF+5ozgLYwQ7JF32lydWVmdERfmmdlxG5UL1q+kPKgAtfVJxcaHbhymVJvr79prbmz4rRUbk NfANHHmGdNkxBJ287HLB2WO+PUGwl9kOyJrwTyAQSIumWwSHmFlArhfYuBfj0YPEqefiOpEWTTL vWVZ4c561bhvEb7GhY3obDBhTCgUpPmvxYl6ZSmoS9TatrrBxC6b3P3XPs0E2hbH+seDPOiBis6 6qK0Oa/ckYUCvq2Jh8sJlNG6NNV4oTfWXWwQE1EdzoCa/AmEIRJ0tzioGCmZ/5oOK2gk/YIXPgT F+0Jy1X0BfJO20pYpmIJ2QOubY1OAC1DuW3r8jTXqWw== X-Received: by 2002:ac8:5f10:0:b0:51c:e14:87a7 with SMTP id d75a77b69052e-52d64805fbamr33055571cf.28.1786536789848; Wed, 12 Aug 2026 05:13:09 -0700 (PDT) X-Received: by 2002:ac8:5f10:0:b0:51c:e14:87a7 with SMTP id d75a77b69052e-52d64805fbamr33054851cf.28.1786536789176; Wed, 12 Aug 2026 05:13:09 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v5 5/7] hw/nmi: Rename nmi_monitor_handler() -> raise_nmi() Date: Wed, 12 Aug 2026 14:12:30 +0200 Message-ID: <20260812121232.71958-6-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260812121232.71958-1-philmd@oss.qualcomm.com> References: <20260812121232.71958-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfXxQY5sXOxvHEd EgFRbVAfvEkdtYu0bcgA5TPK6hZKepoN8nUT7i5UC5NdelJIQxoeQyii1sX3BWorpac0U2hXjp3 eIA7IY0+wWPHJuHnn9QjUiXaNJmebeQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX4rQIwqX9pBQk 6aLP19eABo7yQVJEZMzCGQ3+Budsm5faJD27gOu8UnnspLOYX5yAU0QX5TQXkHhHx+ZG/DfhX1Y JtwqnwQyggPx7NMwBPHduhbe2JQU4RQWuvfN0/kDnHHEE652EshjKOi/nDLZ1E7+BD4KjxQoTYg MZ0cACdwZYw/zxMUgp0d9wHxQo2OyYGtMgvKz/2rSfv8REJFKYIJwvqhBYCntilUuKQchtlKprS gmBGZ12UEnigwMUsdkTKImhBNkS+AE1C0fRlulitSaUpemxqGoux1gOZCTWsdqaU+pRD5xI3ZH+ OM66XpsGWccrHo2jSrVD+uWp9MJqj8KX0IVcoKtHBI4/7HoNLsDjjMHZ0D9g5ohp7N3LVaedFis 3Gi+awwcFqhpxIHqg9AtGIVeZ97jtsbISGcWk9iwOcy5X6xIsJPppd7gN0sKLyVIuN40Y/GmJwW 9ij8qPJHtPYe2yls7Mw== X-Proofpoint-ORIG-GUID: YgHvzDU0OwO1qrHo6QAhQ3gkvPFcwsQ3 X-Authority-Analysis: v=2.4 cv=POA/P/qC c=1 sm=1 tr=0 ts=6a7c6356 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=XQsbmRuMgCUMduHJsesA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: YgHvzDU0OwO1qrHo6QAhQ3gkvPFcwsQ3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-12_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 impostorscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120099 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1786536814281158500 nmi_monitor_handler() is not related to the monitor, rename it as raise_nmi(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Marc-Andr=C3=A9 Lureau --- include/hw/core/nmi.h | 10 ++++++---- hw/core/nmi.c | 2 +- hw/hppa/machine.c | 2 +- hw/i386/x86.c | 2 +- hw/intc/m68k_irqc.c | 2 +- hw/m68k/q800-glue.c | 2 +- hw/misc/macio/gpio.c | 2 +- hw/ppc/pnv.c | 2 +- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 15 insertions(+), 13 deletions(-) diff --git a/include/hw/core/nmi.h b/include/hw/core/nmi.h index 851be28257e..a8feac3b67e 100644 --- a/include/hw/core/nmi.h +++ b/include/hw/core/nmi.h @@ -38,12 +38,14 @@ struct NMIClass { InterfaceClass parent_class; =20 /** - * nmi_monitor_handler: Callback to handle NMI notifications. - * + * raise_nmi: Callback to handle NMI notifications. * @ns: Class #NMIState state * @errp: pointer to error object + * + * Called by nmi_inject() to perform the machine-specific + * action when a NMI is requested. */ - void (*nmi_monitor_handler)(NMIState *ns, Error **errp); + void (*raise_nmi)(NMIState *ns, Error **errp); }; =20 /** @@ -58,7 +60,7 @@ struct NMIClass { * and on s390 it triggers the RESTART interrupt on the first CPU.) * * The NMI is injected by looking for a QOM object which implements - * the TYPE_NMI interface, and calling its nmi_monitor_handler method. Usu= ally + * the TYPE_NMI interface, and calling its raise_nmi method. Usually * it is the machine model class that implements this interface. * * Not all machines implement NMI handling; this function diff --git a/hw/core/nmi.c b/hw/core/nmi.c index 2d890f2995d..a6edf4fbf01 100644 --- a/hw/core/nmi.c +++ b/hw/core/nmi.c @@ -37,7 +37,7 @@ static int do_nmi(Object *o, void *opaque) NMIClass *nc =3D NMI_GET_CLASS(n); =20 ns->handled =3D true; - nc->nmi_monitor_handler(n, &ns->err); + nc->raise_nmi(n, &ns->err); if (ns->err) { return -1; } diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index 2b44debc388..717cfde61da 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -851,7 +851,7 @@ static void hppa_machine_common_class_init(ObjectClass = *oc, const void *data) mc->default_ram_id =3D "hppa.ram"; mc->default_nic =3D "tulip"; =20 - nc->nmi_monitor_handler =3D hppa_nmi; + nc->raise_nmi =3D hppa_nmi; } =20 static void HP_B160L_machine_init_class_init(ObjectClass *oc, const void *= data) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 0ea5453403d..d1414ff63db 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -389,7 +389,7 @@ static void x86_machine_class_init(ObjectClass *oc, con= st void *data) mc->get_default_cpu_node_id =3D x86_get_default_cpu_node_id; mc->possible_cpu_arch_ids =3D x86_possible_cpu_arch_ids; mc->kvm_type =3D x86_kvm_type; - nc->nmi_monitor_handler =3D x86_nmi; + nc->raise_nmi =3D x86_nmi; =20 object_class_property_add(oc, X86_MACHINE_SMM, "OnOffAuto", x86_machine_get_smm, x86_machine_set_smm, diff --git a/hw/intc/m68k_irqc.c b/hw/intc/m68k_irqc.c index bc41b44d455..29f758dafd1 100644 --- a/hw/intc/m68k_irqc.c +++ b/hw/intc/m68k_irqc.c @@ -97,7 +97,7 @@ static void m68k_irqc_class_init(ObjectClass *oc, const v= oid *data) InterruptStatsProviderClass *ic =3D INTERRUPT_STATS_PROVIDER_CLASS(oc); =20 device_class_set_props(dc, m68k_irqc_properties); - nc->nmi_monitor_handler =3D m68k_nmi; + nc->raise_nmi =3D m68k_nmi; device_class_set_legacy_reset(dc, m68k_irqc_reset); dc->vmsd =3D &vmstate_m68k_irqc; ic->get_statistics =3D m68k_irqc_get_statistics; diff --git a/hw/m68k/q800-glue.c b/hw/m68k/q800-glue.c index b13e5ef95f1..265af90a8e6 100644 --- a/hw/m68k/q800-glue.c +++ b/hw/m68k/q800-glue.c @@ -237,7 +237,7 @@ static void glue_class_init(ObjectClass *klass, const v= oid *data) dc->vmsd =3D &vmstate_glue; device_class_set_props(dc, glue_properties); rc->phases.hold =3D glue_reset_hold; - nc->nmi_monitor_handler =3D glue_nmi; + nc->raise_nmi =3D glue_nmi; } =20 static const TypeInfo glue_info_types[] =3D { diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c index 1bdca728f97..db0c4ecb3cf 100644 --- a/hw/misc/macio/gpio.c +++ b/hw/misc/macio/gpio.c @@ -201,7 +201,7 @@ static void macio_gpio_class_init(ObjectClass *oc, cons= t void *data) =20 device_class_set_legacy_reset(dc, macio_gpio_reset); dc->vmsd =3D &vmstate_macio_gpio; - nc->nmi_monitor_handler =3D macio_gpio_nmi; + nc->raise_nmi =3D macio_gpio_nmi; } =20 static const TypeInfo macio_gpio_init_info =3D { diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 8676be7bbb1..a9f74245866 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -3583,7 +3583,7 @@ static void pnv_machine_class_init(ObjectClass *oc, c= onst void *data) mc->default_ram_size =3D 1 * GiB; mc->default_ram_id =3D "pnv.ram"; ispc->print_info =3D pnv_pic_print_info; - nc->nmi_monitor_handler =3D pnv_nmi; + nc->raise_nmi =3D pnv_nmi; =20 object_class_property_add_bool(oc, "hb-mode", pnv_machine_get_hb, pnv_machine_set_hb); diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 189334b9f0a..ad571481c44 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4652,7 +4652,7 @@ static void spapr_machine_class_init(ObjectClass *oc,= const void *data) mc->nvdimm_supported =3D true; smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_ENABLED; fwc->get_dev_path =3D spapr_get_fw_dev_path; - nc->nmi_monitor_handler =3D spapr_nmi; + nc->raise_nmi =3D spapr_nmi; vhc->cpu_in_nested =3D spapr_cpu_in_nested; vhc->deliver_hv_excp =3D spapr_exit_nested; vhc->hypercall =3D emulate_spapr_hypercall; diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 5d8a73a63df..a59346a2120 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -830,7 +830,7 @@ static void ccw_machine_class_init(ObjectClass *oc, con= st void *data) hc->plug =3D s390_machine_device_plug; hc->unplug_request =3D s390_machine_device_unplug_request; hc->unplug =3D s390_machine_device_unplug; - nc->nmi_monitor_handler =3D s390_nmi; + nc->raise_nmi =3D s390_nmi; mc->default_ram_id =3D "s390.ram"; mc->default_nic =3D "virtio-net-ccw"; dsi->qmp_dump_skeys =3D s390_qmp_dump_skeys; --=20 2.53.0 From nobody Wed Aug 26 07:24:35 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786536816; cv=none; d=zohomail.com; s=zohoarc; b=WBZsWy+ITrS0b2W2v5+hgS70+F+kfpbX+1NJ26b3RzWiuV+WU9+9JySTpD72iF3X6BK1Ddrnd0mvEtaQhqTzSe4wXLFV+nwkQLHeZogzDKaLKHpFXeK2MGfJnkgccYJokESavvh5AyZJ9g4pqPIA3eGVvSZUWDSqInPi2UmrwH0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786536816; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=ZzR+XR+yKsgN+SuwZnPqfhvWy3kpezZnGAUbKXQNob4=; b=dn04pvO5QYcyywnncz+0gGeGfB+ky/szHg6p3Pl/8qKcFtvv00wmgt4wVmHvKAdI/84xWGNrwG7AD/iZMtPJe7j2wWcqwl5nzKxPE+hqcdE1OXj06DfdeOXah1rW11Du8lGD+JMuzKcR+FswmCOi0bOteJ/ySdYM6UkHtOhgfQA= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786536816862292.0919009304524; Wed, 12 Aug 2026 05:13:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wu7pk-00075Y-Q4; Wed, 12 Aug 2026 08:13:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7ph-00075B-Jq for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pf-0007aP-64 for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:21 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CB4JDV2860087 for ; Wed, 12 Aug 2026 12:13:18 GMT Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0mnd8yyh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 12:13:17 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-8e934385db1so11092766d6.0 for ; Wed, 12 Aug 2026 05:13:17 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4997aaaecabsm72646945e9.5.2026.08.12.05.13.15 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 12 Aug 2026 05:13:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ZzR+XR+yKsgN+SuwZnPqfhvWy3kpezZnGAUbKXQNob4=; b=VYk98RrcD/UA+sl1 5wAZLjMpu8w8GwFwkMeXVCxJ6aXxq20rC6nV6hRppz+af9KoQoR9VPfT3iqhfyJO VeBHP4szy2fk5OIxHRq73Z0uUHylYJ8f/yo7ovcpUhq5mM66GnbF13Jbd5kW/a5c 4YNSiwDSSBpQyOnBw0uoLQxWXZ2F5Ix30jeaVa2H5uNf9GK0LQ1LY5BtABvVeu2i Cal4W2leTjfByuPUqytNdMGz9KPT1+Q0/Xd74vzWnGBcP/uFeD3BGEE2s9ZhkIFz Y1PMEHSbul7Xu0DN90EFlH8m2tg5fk50OFkQn/sx1YYvY0v7if3tCpV6iyByBNMs vHYC1Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786536797; x=1787141597; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ZzR+XR+yKsgN+SuwZnPqfhvWy3kpezZnGAUbKXQNob4=; b=Nz0KbLcMJYjUTM+Ty5OTCA4M8NQXO41A8A/MeMayiUYh4MXkXFyv+KHjVqs9JanFKo 02vOZHOHkYxIsfMKpvVy/uWfcMom2V1fFo4JmthXNMZ7PhTJTR/14XDYpmy7ley6VW9d kO12yXx8sdHV8Zj9/Gqx388g/Q8GTNGp+ttK2ROb/8PlHA4E0BYphyYg33sSszOim2ck QQLJrqls80Zw8hA6M3qonOFQ5Xot5P9eeBRYbxzrd9jy1gQyYv0VZszGoX2izLSjbwlL E+EbPgQ095LBrUkj6yWIe0kLTnrazuTZHZJ8fJuBsrys7M1jFrubOQybalGoZnwbNeJv Nb9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786536797; x=1787141597; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ZzR+XR+yKsgN+SuwZnPqfhvWy3kpezZnGAUbKXQNob4=; b=ZSLROdEsOcUrmUCehK8oHpP1lTecHW0dTiFallG4x7ey9JreeH6D7b8EBEjAg8f/sG Gz9Y4rb9z73B1sGxOknpbtVoYUqUiJe/6lKr2yN4IMr7KjfKf1mjjbx9bi8SLyUv9lb0 YhmehlgJgHKcRNY7JMYWDPDJhp89SeEa8uUO+GfyVzn5P8ytMm10F9+OyMfk6pzd94Dh cix7hhd7TETMVBL8wGi/843GKhbszgJMu3bMGjHZuWFjKcnbZukJWqI7XgxijQOXGVQn w6ffsmZIlzZVZGYjoZSID5l6MxqgGEpCF6XDjUR6s/nJpXjukJVWy1v56lmBTU/U1GX0 4Z+Q== X-Gm-Message-State: AOJu0YzIYpin7m1kdFYb+oQXwIX0PRx2MMipxT+mUKWU4ra6zojrS5ej 3Uk95yg4leptbM4W8Owxo1SMUFmVU8zu2egnKzBrVWiutUzZyUqSsKFNZ2O3xUyEmNZxU3ZIg0C xb1pSoJJLu+oxI6Zlh3r+7s2FhnUpRe8iZXjqfVS9CRsZKsqbU+Nq0esN5UDDHwSiIQ== X-Gm-Gg: AR+sD10j1/yO5tcvaCKxiExapk7b2HWw0sS1xsY2h9vx4I22AlWFI4pTf2I3UaOO0F+ 61RMT9mW6MQu8dQisflv4DoWPKU18EjfyiDCD9cH52DGl3QhvTUzrPJGsqk2m6KUtd39vIwZXGT 6Bh8s5QQs1s+bsMOvWC5agxnmOVNh11ib4GqdBcJxtMWeFLsrPh/IMHvLJOTGSIHbyR9iWmPmTh ag1qOGGqgZ/eLje0/kaiirMv+fMOYjZ9rAUUZsyJY4IZvPibTRHpdagZUWAWyH1bhQPnjFHA42t doHRBSan0fg2Y0Fd0LWrDByt6uixb93z/FoT8MAW6P2BW8dwmGMRkLEZYfkhuyFNMRdsf+FIWus OlBFTOUAVthfhQcCEc5rJcLvCuGjSmS1pWW1FDdZ7oQ== X-Received: by 2002:ac8:5852:0:b0:51c:22c5:daee with SMTP id d75a77b69052e-52d64832821mr33401641cf.29.1786536796700; Wed, 12 Aug 2026 05:13:16 -0700 (PDT) X-Received: by 2002:ac8:5852:0:b0:51c:22c5:daee with SMTP id d75a77b69052e-52d64832821mr33401121cf.29.1786536796140; Wed, 12 Aug 2026 05:13:16 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v5 6/7] hw/nmi: Remove unused @errp argument from raise_nmi() Date: Wed, 12 Aug 2026 14:12:31 +0200 Message-ID: <20260812121232.71958-7-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260812121232.71958-1-philmd@oss.qualcomm.com> References: <20260812121232.71958-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX8s5WOUpQbWI+ mML8RdrdCDsdROLN3F+xA8q9lO5BZuU5xwtefOarNiaJJoAj2kiZjwv8i8DY0t4LLzFPAeQLs7i uRrRK+oC7CoNxbj/4V/WCE2hD1D/9WI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX4tDzrBqtDwYe x+fG8B8lWzF4238ngvDzGq/2Duf2DjB6cvY+rfSWEDMO51V/yl1VtkGBNtWodHHzc/7ym72Th0f 6JyodCwnH89Gd0056qkPgpfV5Xv+xnH5sgF5qI/6lWQLu/mmToe70hv1p7xTOyGt2b3oLjx748C qhM+qLn3z/VMpY8yCknN42OfM2IdmKOJA5/rEFX32F+nePdgFxhT0dvkewGzMVEi7YkagltkmVI 6t4bqFg7EMElRMM0/Qtu5AL5UvpvncW8pzBwO8wxJPnMGDCTwuBmN8bKAYdUl5i0i5P47svX7BD AQDct+8sd1EvOJnjUQcr1o0Rzuq84+5OROfVqF5LVTVuloLl/bA/G/EUmJ63/P8CRc5jYR72qDa S1fAcoPjQQaXeZ+aA0a0/m1W9AVVPE33LSUp5F+xWbLQErnrUzsnu37l0TGOScba9JkyFXL61Gv WepfPvAzZ/TY2AXEB4Q== X-Proofpoint-GUID: oBnrH1ppLLP9FdjC39mr4z-v1Vo_Xhd6 X-Authority-Analysis: v=2.4 cv=C87ZDwP+ c=1 sm=1 tr=0 ts=6a7c635d cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=so-psXbHftmeYDB8DEMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-ORIG-GUID: oBnrH1ppLLP9FdjC39mr4z-v1Vo_Xhd6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-12_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120099 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1786536818120158500 Not a single handler update @errp. The single user is nmi_inject() filling with "machine does not provide NMIs". Remove the unused argument from the raise_nmi() callback, simplifying the methods in hw/core/nmi.c. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Marc-Andr=C3=A9 Lureau --- include/hw/core/nmi.h | 3 +-- hw/core/nmi.c | 32 ++++++-------------------------- hw/hppa/machine.c | 2 +- hw/i386/x86.c | 2 +- hw/intc/m68k_irqc.c | 2 +- hw/m68k/q800-glue.c | 2 +- hw/misc/macio/gpio.c | 2 +- hw/ppc/pnv.c | 2 +- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 15 insertions(+), 36 deletions(-) diff --git a/include/hw/core/nmi.h b/include/hw/core/nmi.h index a8feac3b67e..d71d92dfbb9 100644 --- a/include/hw/core/nmi.h +++ b/include/hw/core/nmi.h @@ -40,12 +40,11 @@ struct NMIClass { /** * raise_nmi: Callback to handle NMI notifications. * @ns: Class #NMIState state - * @errp: pointer to error object * * Called by nmi_inject() to perform the machine-specific * action when a NMI is requested. */ - void (*raise_nmi)(NMIState *ns, Error **errp); + void (*raise_nmi)(NMIState *ns); }; =20 /** diff --git a/hw/core/nmi.c b/hw/core/nmi.c index a6edf4fbf01..c44b0cf892d 100644 --- a/hw/core/nmi.c +++ b/hw/core/nmi.c @@ -23,45 +23,25 @@ #include "hw/core/nmi.h" #include "qapi/error.h" =20 -struct do_nmi_s { - Error *err; - bool handled; -}; - static int do_nmi(Object *o, void *opaque) { - struct do_nmi_s *ns =3D opaque; + bool *handled =3D opaque; NMIState *n =3D (NMIState *) object_dynamic_cast(o, TYPE_NMI); =20 if (n) { - NMIClass *nc =3D NMI_GET_CLASS(n); - - ns->handled =3D true; - nc->raise_nmi(n, &ns->err); - if (ns->err) { - return -1; - } + *handled =3D true; + NMI_GET_CLASS(n)->raise_nmi(n); } =20 return 0; } =20 -static int nmi_children(Object *o, struct do_nmi_s *ns) -{ - return object_child_foreach_recursive(o, do_nmi, ns); -} - bool nmi_inject(Error **errp) { - struct do_nmi_s ns =3D { - .err =3D NULL, - .handled =3D false - }; + bool handled =3D false; =20 - if (nmi_children(object_get_root(), &ns)) { - error_propagate(errp, ns.err); - return false; - } else if (!ns.handled) { + object_child_foreach_recursive(object_get_root(), do_nmi, &handled); + if (!handled) { error_setg(errp, "machine does not provide NMIs"); return false; } diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index 717cfde61da..98931481b20 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -829,7 +829,7 @@ static void hppa_machine_reset(MachineState *ms, ResetT= ype type) cpu[0]->env.cmdline_or_bootorder =3D 'c'; } =20 -static void hppa_nmi(NMIState *ns, Error **errp) +static void hppa_nmi(NMIState *ns) { CPUState *cs; =20 diff --git a/hw/i386/x86.c b/hw/i386/x86.c index d1414ff63db..f8ba3244e22 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -147,7 +147,7 @@ static const CPUArchIdList *x86_possible_cpu_arch_ids(M= achineState *ms) return ms->possible_cpus; } =20 -static void x86_nmi(NMIState *ns, Error **errp) +static void x86_nmi(NMIState *ns) { /* cpu index isn't used */ CPUState *cs; diff --git a/hw/intc/m68k_irqc.c b/hw/intc/m68k_irqc.c index 29f758dafd1..47f626c0fa0 100644 --- a/hw/intc/m68k_irqc.c +++ b/hw/intc/m68k_irqc.c @@ -70,7 +70,7 @@ static void m68k_irqc_instance_init(Object *obj) qdev_init_gpio_in(DEVICE(obj), m68k_set_irq, M68K_IRQC_LEVEL_NUM); } =20 -static void m68k_nmi(NMIState *n, Error **errp) +static void m68k_nmi(NMIState *n) { m68k_set_irq(n, M68K_IRQC_LEVEL_7, 1); } diff --git a/hw/m68k/q800-glue.c b/hw/m68k/q800-glue.c index 265af90a8e6..223e7d9019c 100644 --- a/hw/m68k/q800-glue.c +++ b/hw/m68k/q800-glue.c @@ -159,7 +159,7 @@ static void glue_auxmode_set_irq(void *opaque, int irq,= int level) s->auxmode =3D level; } =20 -static void glue_nmi(NMIState *n, Error **errp) +static void glue_nmi(NMIState *n) { GLUEState *s =3D GLUE(n); =20 diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c index db0c4ecb3cf..ba001f7b206 100644 --- a/hw/misc/macio/gpio.c +++ b/hw/misc/macio/gpio.c @@ -188,7 +188,7 @@ static void macio_gpio_reset(DeviceState *dev) macio_set_gpio(s, 1, true); } =20 -static void macio_gpio_nmi(NMIState *n, Error **errp) +static void macio_gpio_nmi(NMIState *n) { macio_set_gpio(MACIO_GPIO(n), 9, true); macio_set_gpio(MACIO_GPIO(n), 9, false); diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index a9f74245866..f0413639f98 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -3552,7 +3552,7 @@ static void pnv_cpu_do_nmi(PnvChip *chip, PowerPCCPU = *cpu, void *opaque) async_run_on_cpu(CPU(cpu), pnv_cpu_do_nmi_on_cpu, RUN_ON_CPU_HOST_INT(= 0)); } =20 -static void pnv_nmi(NMIState *ns, Error **errp) +static void pnv_nmi(NMIState *ns) { PnvMachineState *pnv =3D PNV_MACHINE(qdev_get_machine()); int i; diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ad571481c44..e0678156e73 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3550,7 +3550,7 @@ void spapr_do_system_reset_on_cpu(CPUState *cs, run_o= n_cpu_data arg) } } =20 -static void spapr_nmi(NMIState *ns, Error **errp) +static void spapr_nmi(NMIState *ns) { CPUState *cs; =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index a59346a2120..c1ce7825650 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -725,7 +725,7 @@ static HotplugHandler *s390_get_hotplug_handler(Machine= State *machine, return NULL; } =20 -static void s390_nmi(NMIState *ns, Error **errp) +static void s390_nmi(NMIState *ns) { s390_cpu_restart(S390_CPU(first_cpu)); } --=20 2.53.0 From nobody Wed Aug 26 07:24:35 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786536834; cv=none; d=zohomail.com; s=zohoarc; b=iYdUkFf/ygyczU53o39OnNCH64UpuZlds0FN0wLl6E4cqSXpeg6ScbiwsqFouqZ2M8tRevZjCThepP/UtMtO47VrzT+jwU1SQTnHK1/FlCPqz/ADBIVKIOSauISsEZ4ZJqIpGg0vqTh2fVHDpcIcE6pxvE+xE0J4fVzr5xpKuJU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786536834; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=sQbbgiiaJ0qijuxBreugUJN9rD1J9WUS5VDcLHO+JK8=; b=DngVTQlz0lroXcsCYw9BxIBj8ZE4mZIINuav8y127dLKg2Z6IhwlFWQk/kqDubzO4T5tAfSXJUDK0qUBRGshTNhg31rnFe1Fs+ZB2z12mqOxT18/O9+0MGgBMtbhOTNXQT00IzrtogPr2Sem9hyxgHo8DouKAYhedBAFAiuEP6g= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786536834802629.1826841562075; Wed, 12 Aug 2026 05:13:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wu7pq-0007BS-DG; Wed, 12 Aug 2026 08:13:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pn-000791-Jc for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:28 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wu7pl-0007cz-Sj for qemu-devel@nongnu.org; Wed, 12 Aug 2026 08:13:27 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CB4Od82860295 for ; Wed, 12 Aug 2026 12:13:24 GMT Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0mnd8yyy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 12 Aug 2026 12:13:24 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-5174a23afcbso12218811cf.3 for ; Wed, 12 Aug 2026 05:13:24 -0700 (PDT) Received: from localhost.localdomain (pmd666.hd.free.fr. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4997c939574sm41443665e9.1.2026.08.12.05.13.22 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 12 Aug 2026 05:13:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= sQbbgiiaJ0qijuxBreugUJN9rD1J9WUS5VDcLHO+JK8=; b=F8Efu87Ig1P3Rq2p HKlIrO2iriLMgwHa3JjgZg0nkeNjtL9ACF0Cgq2DXpKa3A7tdedSlZp1xsHb5JFk xBxQ8qbSdfvD2v3zEmeFa0a/tcN09IkdPhj+lWyREgVTqjL8ggbG7Vbqq3iDwGRy t7iG9vcTpKBQLjYBkYEY+eJL4BN/57dFLl1NbFh8QVErVuYNYg5tgws35/KwFnnV FBQtQIC8YcUwwCz6ZQBi+eZbSVLCJxKJJqtTQHN8YO70bktnJGcxRoLpFNQdYGNk B0nbCVNDfh+SY2Rj5NRVXbab47aY5cZYUH94c1nadj9Uom18uC2KcwVfa0/JwolM fgHq/A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786536803; x=1787141603; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=sQbbgiiaJ0qijuxBreugUJN9rD1J9WUS5VDcLHO+JK8=; b=ARMRO8N1+8sIzm0V+q3owhOqmLwT+YEXRU+So1pv+AvDuL4jdoRAnkv03VaGXSGcnO HuKJDcxMJp+deJ1K2uwh5C2HdtYuHgRro7Tp0x3gkdp94ilQV7dXA7IHf/mwfivyS7iw /+IB8u+ZZ0Y22YGa2ztpr8Wsr0xUc8Aryg5ryi+JxAvDun9UD4vHTYDKEXsVyX5fUJGt r8ipYidjc4Fz+9o6USSFuOOiJMpv/cwFcy7g1HKbeuWxcl/BPNx2PZ1egHdz7fsDcMB8 Yka3HgOLe2aSSbQgd5cGyWfMY+i4hAEUe4SYJuEwj6/VKVvSQHzNnfxNcyfURzzblIW0 lYCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786536803; x=1787141603; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=sQbbgiiaJ0qijuxBreugUJN9rD1J9WUS5VDcLHO+JK8=; b=KH5xDss5aKcjbStBUp1EfgyTHAyNVS4ofwV83qaOXMi9iq5+KIzkkSq5z+Ti3LmF5a YLxDD7qiPLwDNvXE2277XnVqd1AKrI2x3iv2518pSokOqWCpPBsx9aBQI8dmRNxTL5z2 ymAY+VY8StQunVDQ/5KFoilasXrfbcpFvCkYkwyhy1vX7dJzcGK7Rbn7zId7yen+lxd5 JmUOXQHnjikvyAMS2810EbMYHquGadWy6HaEWR4XXRXQI1sPO3tpkiWG806xgI1bj2c0 Rw7aKomxqjk9nbt6ijUMSWq88xrv1r/9MVwEodRcLHot4Omy10knJz9Mf5uJ3U8TO0FU Uh6w== X-Gm-Message-State: AOJu0YzQKfiFe1eK9h5pEQ+gsmaxwlIq2O+GYf9176f1vEF+e67r5zOS ddiXmJNp0KMk9kv5MFV+5+cXBmdKEegWot6pE3vpNLWCYQ+Qj1yzb6Vnz3hJgX5ICzo4SM4vMvn FLuXDQS1KHebgMSKKkWsxIEKu7omfwO3Sulwe4BvrdDwujF+ACKZD8s4NYdCTctYRcQ== X-Gm-Gg: AR+sD11x+Hb7P3gO+oF04COY4ZVzhUjgmEA9mQtTFVGbNmkS+DoeGhkZTMUlx3xkVFK ZTb7ZLgpAnHA6fucFxdOKv5az8tg3/yokZOZmGzUAf+Knd61Se0O7tZWTH45ou3cgBQ2U8ZjX97 Igx2ppbEE6u7saxEZe8hehUnFwTx45ccAstYDehylTIO9Mp5X8XPvTNiJ54SWp7jxbPF/18t5EV dq3ZO5wP10ikyVFwHVaWgBLQRfftQKhl1fT9+AGuGksfo3e6v6ZrckFMtGyxDkFjc+4sl20Hcgk HC4cFyT2FJG4ZaqUYPuVwhvK/X5AS4pzpwQVIdFg9wnvj+Y79+sIqrVuwhjK6ES/bVAggq8oxva 1YguNzOdEtDu3jKp6HybwN0CMia3wPYyZ8ZuVH5HYZQ== X-Received: by 2002:ac8:5855:0:b0:528:3216:b802 with SMTP id d75a77b69052e-52d646d78aemr33463171cf.15.1786536803463; Wed, 12 Aug 2026 05:13:23 -0700 (PDT) X-Received: by 2002:ac8:5855:0:b0:528:3216:b802 with SMTP id d75a77b69052e-52d646d78aemr33462691cf.15.1786536802995; Wed, 12 Aug 2026 05:13:22 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v5 7/7] hw/nmi: Raise NMI line only once Date: Wed, 12 Aug 2026 14:12:32 +0200 Message-ID: <20260812121232.71958-8-philmd@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260812121232.71958-1-philmd@oss.qualcomm.com> References: <20260812121232.71958-1-philmd@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX5k6zME2h22YT GJrINfiRcAeEASRaiGiltirqo1jjH+nVEri7/iFhTsG9TrsbUURqJ407RW0m3eaFyX1foJYT2Tv t/Bx3fhzKjZD8EFlB3JkIDbRs7emujw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDA5OSBTYWx0ZWRfX5+uBzlHcMkMp QKyZER39fbZdIbwr8Gt8ow232tcRSTl6HZ7Z1wA0svCYPGdAZwMIZWFfxKrnVG51gfvL96P+t9F 4fDCDrfh1f1Zs1NNCE7GJgl30TfqpDAoZZBMtk2m2Kf+djn9shJFgnNYLx3UXhwcBZj1n4GDyfg iRIsDQtP4Rtk4FdyMW/OhH4VSk3e80bdNk0K5bQbZOAqp2IJhZUrA5cJ9WRGV9cYl21nadf8yiM 5tO8KpmvAQhoSZUXZQqK62Z3dlOHdfuzUY8g1W05Sre8lFXIoRJTVT+EgE3yAxdRZRIqZpRzj0G oSlzR5864XLqqd1hla3hudCQjxreAfequpJupmHunVmzbCcxE/5Id0bOaCAnD5iLGBSqAxulEFo s1IT3rZQk+NhAIOSNy6+4POvhvlKmAOnt4KAEaQhY9y1WwkthlFoT6FD0+YXnSyJqmENYG+8H7i Q+1yqomC6PwBKSny+aw== X-Proofpoint-GUID: jxdvhT2_iFc1mDNq7l1rXJb7wiEZl9Yq X-Authority-Analysis: v=2.4 cv=C87ZDwP+ c=1 sm=1 tr=0 ts=6a7c6364 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=4s3hRJSeHn4rkQlkrse1kQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=HZQsDzxzLdBvz1sOA9cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: jxdvhT2_iFc1mDNq7l1rXJb7wiEZl9Yq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-12_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120099 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=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=philmd@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: qemu development 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 @qualcomm.com) X-ZM-MESSAGEID: 1786536836249158500 We only expect one device in the system to implement the TYPE_NMI interface (typically the machine, but in a few cases for e.g. m68k and ppc this is an interrupt controller or similar device); so we don't need to keep walking the whole QOM tree once we've found it. As no machine type creates more than one object implementing TYPE_NMI, this is not a behaviour change. Suggested-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Peter Maydell Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/core/nmi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/core/nmi.c b/hw/core/nmi.c index c44b0cf892d..84f21665987 100644 --- a/hw/core/nmi.c +++ b/hw/core/nmi.c @@ -31,6 +31,11 @@ static int do_nmi(Object *o, void *opaque) if (n) { *handled =3D true; NMI_GET_CLASS(n)->raise_nmi(n); + /* + * We expect only one object to implement TYPE_NMI, so once + * we've asked it to deliver the NMI we can stop looking. + */ + return 1; } =20 return 0; --=20 2.53.0