From nobody Wed Nov 12 08:36:07 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1569920400; cv=none; d=zoho.com; s=zohoarc; b=bfBdlLc1Ug/6eE+tvWrHIydw2tSUcQaPiLxYjG00slmWcftOTk1D6aLgWLBoDVlHYAGSjRDXHJhNNDFJZsdJ4ma5oEyYPwYbazhiZC4jJNnczlohdGY8j4Zq7HCuS0FF2g9l0Axqayb7wx8zhG/UWWrqO9gNeWoymj/zX6o5UlU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1569920400; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To:ARC-Authentication-Results; bh=Ijb+InoDnfCIh1dsmRiTxGjgEbkz9oQyG+RjYq7qzIk=; b=HktHhpNCyJMdS9+X3rXmbU7/6D+F92OK2VwQYtciPgbn7xTu/hLv+2goYYQe0y3mXFtKhmFBoHUbCzJ1koEuPDRyTPsQnzwIWRuPZB5dlCBUwFgxisYMIBsGZQ9OfYSnaNCpd739TvpE7j0lIPLRyYTk9IMJ329ga1sLDjDW54Y= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1569920400420717.7265229169426; Tue, 1 Oct 2019 02:00:00 -0700 (PDT) Received: from localhost ([::1]:60124 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFE0i-0007HZ-Ch for importer@patchew.org; Tue, 01 Oct 2019 04:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59316) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFDyb-00057R-7e for qemu-devel@nongnu.org; Tue, 01 Oct 2019 04:57:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFDyY-00042J-Uk for qemu-devel@nongnu.org; Tue, 01 Oct 2019 04:57:44 -0400 Received: from 5.mo173.mail-out.ovh.net ([46.105.40.148]:34320) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iFDyX-00040d-PZ for qemu-devel@nongnu.org; Tue, 01 Oct 2019 04:57:41 -0400 Received: from player762.ha.ovh.net (unknown [10.108.35.185]) by mo173.mail-out.ovh.net (Postfix) with ESMTP id 90CB211B43D for ; Tue, 1 Oct 2019 10:57:38 +0200 (CEST) Received: from kaod.org (lfbn-1-2229-223.w90-76.abo.wanadoo.fr [90.76.50.223]) (Authenticated sender: clg@kaod.org) by player762.ha.ovh.net (Postfix) with ESMTPSA id 8AC85A6D6C0C; Tue, 1 Oct 2019 08:57:32 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH] spapr/xive: skip partially initialized vCPUs in presenter Date: Tue, 1 Oct 2019 10:57:22 +0200 Message-Id: <20191001085722.32755-1-clg@kaod.org> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 X-Ovh-Tracer-Id: 1513772427037412326 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrgeeggddtlecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 46.105.40.148 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Greg Kurz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" When vCPUs are hotplugged, they are added to the QEMU CPU list before being fully realized. This can crash the XIVE presenter because the 'tctx' pointer is not necessarily initialized when looking for a matching target. These vCPUs are not valid targets for the presenter. Skip them. Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: Greg Kurz --- hw/intc/xive.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/intc/xive.c b/hw/intc/xive.c index b7417210d817..29df06df1136 100644 --- a/hw/intc/xive.c +++ b/hw/intc/xive.c @@ -1396,6 +1396,14 @@ static bool xive_presenter_match(XiveRouter *xrtr, u= int8_t format, XiveTCTX *tctx =3D xive_router_get_tctx(xrtr, cs); int ring; =20 + /* + * Skip partially initialized vCPUs. This can happen when + * vCPUs are hotplugged. + */ + if (!tctx) { + continue; + } + /* * HW checks that the CPU is enabled in the Physical Thread * Enable Register (PTER). --=20 2.21.0