From nobody Mon Feb 9 21:39:05 2026 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; dkim=fail; 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=1566374613; cv=none; d=zoho.com; s=zohoarc; b=SJ5nsyHJjEMzKjm678q7LO9hD/tWoiERe3u7V/GGrXOB4AhK5owAptux4xJU44n59Ro5KnEfrKvynMRo+XNg3KGWbPO9KaWxzCnDiyTDKZOi6MI4saRGliNZ25VQD7L+3bSiGREQ/QYGaWsl0WV3sCNqNlmGjk9PdBPuA+fRVFY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566374613; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=RCUqAZqEgHKwxbrkHtM6GwKW0Vpx6/X9GqMYsGJhcAs=; b=irGu3hU8k8okI+r1ZYdJBBoVVDjpqj9tdp33wuCXiE80vTlvs03JJwfisHYvrcCSjKHzMOXgJrE9sgyWZC7RbXSaaPvOJTsWQdDFrGaGcRuDD1sOQWYGWNf+1uH1BbdBGACwmIIOx4INla8RJ3vtdPR/m1+WM3HEsN1imL258sQ= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; 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 1566374613390464.302942395433; Wed, 21 Aug 2019 01:03:33 -0700 (PDT) Received: from localhost ([::1]:44818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i0LaX-0008Em-17 for importer@patchew.org; Wed, 21 Aug 2019 04:03:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42585) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i0L0q-0005Bb-2B for qemu-devel@nongnu.org; Wed, 21 Aug 2019 03:26:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i0L0o-0008Ri-6n for qemu-devel@nongnu.org; Wed, 21 Aug 2019 03:26:31 -0400 Received: from ozlabs.org ([203.11.71.1]:41709) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i0L0m-00086k-NU; Wed, 21 Aug 2019 03:26:29 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 46CzjD4w7Dz9sR3; Wed, 21 Aug 2019 17:25:51 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1566372352; bh=c+EmIbgga9qhHKchaVJfp3Gud/L+/Rf9uswnPZgRVJw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PVlliHW65k94TdXB0EF/obHFSaqP21jdpnA3IknQifzlTzVnrLc09o5D43wVxzozF OL3bggLPfZJ+ucqNRY69dgApRPLHnut/0jj9SizewS6eQKUuHPjSbfEtkf0laUVse/ tQT2+OAp/Vf+UN0uLnxJIYtXzdA9wRXsv/Vru+U8= From: David Gibson To: peter.maydell@linaro.org Date: Wed, 21 Aug 2019 17:25:35 +1000 Message-Id: <20190821072542.23090-36-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190821072542.23090-1-david@gibson.dropbear.id.au> References: <20190821072542.23090-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 203.11.71.1 Subject: [Qemu-devel] [PULL 35/42] spapr/irq: Drop spapr_irq_msi_reset() 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: lvivier@redhat.com, aik@ozlabs.ru, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Greg Kurz PHBs already take care of clearing the MSIs from the bitmap during reset or unplug. No need to do this globally from the machine code. Rather add an assert to ensure that PHBs have acted as expected. Signed-off-by: Greg Kurz Message-Id: <156415228966.1064338.190189424190233355.stgit@bahia.lan> Reviewed-by: C=C3=A9dric Le Goater [dwg: Fix crash in qtest case where spapr->irq_map can be NULL at the new assert()] Signed-off-by: David Gibson --- hw/ppc/spapr.c | 4 ---- hw/ppc/spapr_irq.c | 7 ++----- include/hw/ppc/spapr_irq.h | 1 - 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 51e1cb0d46..64fc2255cc 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1755,10 +1755,6 @@ static void spapr_machine_reset(MachineState *machin= e) ppc_set_compat(first_ppc_cpu, spapr->max_compat_pvr, &error_fatal); } =20 - if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - spapr_irq_msi_reset(spapr); - } - /* * This is fixing some of the default configuration of the XIVE * devices. To be called after the reset of the machine devices. diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c index 2f87fe08f3..06fe2432ba 100644 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@ -59,11 +59,6 @@ void spapr_irq_msi_free(SpaprMachineState *spapr, int ir= q, uint32_t num) bitmap_clear(spapr->irq_map, irq - SPAPR_IRQ_MSI, num); } =20 -void spapr_irq_msi_reset(SpaprMachineState *spapr) -{ - bitmap_clear(spapr->irq_map, 0, spapr->irq_map_nr); -} - static void spapr_irq_init_kvm(SpaprMachineState *spapr, SpaprIrq *irq, Error **errp) { @@ -731,6 +726,8 @@ int spapr_irq_post_load(SpaprMachineState *spapr, int v= ersion_id) =20 void spapr_irq_reset(SpaprMachineState *spapr, Error **errp) { + assert(!spapr->irq_map || bitmap_empty(spapr->irq_map, spapr->irq_map_= nr)); + if (spapr->irq->reset) { spapr->irq->reset(spapr, errp); } diff --git a/include/hw/ppc/spapr_irq.h b/include/hw/ppc/spapr_irq.h index 8132e00366..5db305165c 100644 --- a/include/hw/ppc/spapr_irq.h +++ b/include/hw/ppc/spapr_irq.h @@ -30,7 +30,6 @@ void spapr_irq_msi_init(SpaprMachineState *spapr, uint32_= t nr_msis); int spapr_irq_msi_alloc(SpaprMachineState *spapr, uint32_t num, bool align, Error **errp); void spapr_irq_msi_free(SpaprMachineState *spapr, int irq, uint32_t num); -void spapr_irq_msi_reset(SpaprMachineState *spapr); =20 typedef struct SpaprIrq { uint32_t nr_irqs; --=20 2.21.0