From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324198; cv=none; d=zohomail.com; s=zohoarc; b=n2di0HBPs6Mxw7v+Urw5cfb1dKfO3YMUIn+l+EXtR4+OGyOnJIex1ViaWl9ZeNnu6OspTcZPLeUlznwQXzy6e6gkFLUqhSZO/KgzDv1HKobCdakoSU1x36v3cPkMjSB/6kpjKZwKXOh6OHnpIZ/tFdP5tYIVl8kl6b4Nh4NwHA0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324198; 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; bh=wXYbYAm0IzfLo1SwXGeQppNhSvfhjj5z1eCau8J/rVs=; b=EnfK5O/2zc3ToVZllc15QjxMnQDzdoa4sybWuAfeqrXm9lUxVVT2ZxNP0zliLovNKBPaCIvzSZmExCLlkyUyAuyLj87EoiG/+GgDKXp6QTDUR1xuOIBdgx4kDmRP5Jmnlsb/KcP7nlnw/sI9kfYZQj4EUUdzIw/ja6hkTD3k0aw= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324198003402.5905815191229; Mon, 6 Jan 2020 07:23:18 -0800 (PST) Received: from localhost ([::1]:53418 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUDs-0007wn-CW for importer@patchew.org; Mon, 06 Jan 2020 10:23:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49233) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioToU-0008Up-RJ for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioToT-0000Ni-HP for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:02 -0500 Received: from 3.mo5.mail-out.ovh.net ([46.105.40.108]:37099) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioToT-0000MD-BZ for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:01 -0500 Received: from player731.ha.ovh.net (unknown [10.108.42.176]) by mo5.mail-out.ovh.net (Postfix) with ESMTP id 565A5263469 for ; Mon, 6 Jan 2020 15:56:59 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 72C5CDB3A3F4; Mon, 6 Jan 2020 14:56:53 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 01/12] ppc/pnv: Introduce a "xics" property alias under the PSI model Date: Mon, 6 Jan 2020 15:56:34 +0100 Message-Id: <20200106145645.4539-2-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5384897783093103590 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjeduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedt 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.108 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" This removes the need of the intermediate link under PSI to pass the XICS link to the underlying ICSState object. Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: Greg Kurz --- hw/ppc/pnv.c | 4 ++-- hw/ppc/pnv_psi.c | 11 ++--------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 855254f28263..230bb9f31235 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -992,8 +992,6 @@ static void pnv_chip_power8_instance_init(Object *obj) =20 object_initialize_child(obj, "psi", &chip8->psi, sizeof(chip8->psi), TYPE_PNV8_PSI, &error_abort, NULL); - object_property_add_const_link(OBJECT(&chip8->psi), "xics", - OBJECT(qdev_get_machine()), &error_abor= t); =20 object_initialize_child(obj, "lpc", &chip8->lpc, sizeof(chip8->lpc), TYPE_PNV8_LPC, &error_abort, NULL); @@ -1060,6 +1058,8 @@ static void pnv_chip_power8_realize(DeviceState *dev,= Error **errp) /* Processor Service Interface (PSI) Host Bridge */ object_property_set_int(OBJECT(&chip8->psi), PNV_PSIHB_BASE(chip), "bar", &error_fatal); + object_property_set_link(OBJECT(&chip8->psi), OBJECT(qdev_get_machine(= )), + ICS_PROP_XICS, &error_abort); object_property_set_bool(OBJECT(&chip8->psi), true, "realized", &local= _err); if (local_err) { error_propagate(errp, local_err); diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c index 75e20d9da08b..4da3d2568624 100644 --- a/hw/ppc/pnv_psi.c +++ b/hw/ppc/pnv_psi.c @@ -470,6 +470,8 @@ static void pnv_psi_power8_instance_init(Object *obj) =20 object_initialize_child(obj, "ics-psi", &psi8->ics, sizeof(psi8->ics), TYPE_ICS, &error_abort, NULL); + object_property_add_alias(obj, ICS_PROP_XICS, OBJECT(&psi8->ics), + ICS_PROP_XICS, &error_abort); } =20 static const uint8_t irq_to_xivr[] =3D { @@ -485,19 +487,10 @@ static void pnv_psi_power8_realize(DeviceState *dev, = Error **errp) { PnvPsi *psi =3D PNV_PSI(dev); ICSState *ics =3D &PNV8_PSI(psi)->ics; - Object *obj; Error *err =3D NULL; unsigned int i; =20 - obj =3D object_property_get_link(OBJECT(dev), "xics", &err); - if (!obj) { - error_setg(errp, "%s: required link 'xics' not found: %s", - __func__, error_get_pretty(err)); - return; - } - /* Create PSI interrupt control source */ - object_property_set_link(OBJECT(ics), obj, ICS_PROP_XICS, &error_abort= ); object_property_set_int(OBJECT(ics), PSI_NUM_INTERRUPTS, "nr-irqs", &e= rr); if (err) { error_propagate(errp, err); --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324023; cv=none; d=zohomail.com; s=zohoarc; b=ZZ0t1kjk933UpzAgRF1qQyiUqxlioAoyaEFACkwK2wq5O01yVOMaQYgBjrX1VbZBoc1yKTOPCIA5BNAtdNvogEOkYnG0Q1dW1XsinwZd4eDahytaPgQ4guMAVoWulpRXTxBTWFWTUO09EBY/cfkeyufdqbj+LupmvjEO/mtcYiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324023; 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; bh=eJxXJFRKmh4Ks2xFYnRrgu8ZuwRBsrWk96ck7duO2EA=; b=C+YdpF0I7rEiVldXbh/pXnr3WDesCWZWUJTYTqKgfCawQ2LZPUZJtE8E3KjiMTFgEiKZPWnCbICZ8glyKUNnYgPSbOZ3zmbB4xSRT24rbMlmQvrKWDpKlVfX6XlvYN0JCRMQVzXcrXM0xVKcBa1cbl2wSnnAAr6HY9Do+erg7+E= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324023147606.1891060103358; Mon, 6 Jan 2020 07:20:23 -0800 (PST) Received: from localhost ([::1]:53358 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUB3-0003HQ-6I for importer@patchew.org; Mon, 06 Jan 2020 10:20:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49328) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTob-0000Em-R7 for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioToa-0000Ws-G8 for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:09 -0500 Received: from 3.mo6.mail-out.ovh.net ([178.33.253.26]:45347) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioToa-0000VZ-9z for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:08 -0500 Received: from player731.ha.ovh.net (unknown [10.108.35.232]) by mo6.mail-out.ovh.net (Postfix) with ESMTP id 7AC9D1F7B53 for ; Mon, 6 Jan 2020 15:57:05 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 279B9DB3A494; Mon, 6 Jan 2020 14:56:59 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 02/12] ppc/pnv: Introduce a "xics" property under the POWER8 chip Date: Mon, 6 Jan 2020 15:56:35 +0100 Message-Id: <20200106145645.4539-3-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5386586630620810214 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedv 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: 178.33.253.26 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" POWER8 is the only chip using the XICS interface. Add a "xics" link and a XICSFabric attribute under this chip to remove the use of qdev_get_machine() Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: Greg Kurz Reviewed-by: David Gibson --- include/hw/ppc/pnv.h | 2 ++ hw/ppc/pnv.c | 24 +++++++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index f78fd0dd967c..56277862dd53 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -72,6 +72,8 @@ typedef struct Pnv8Chip { Pnv8Psi psi; PnvOCC occ; PnvHomer homer; + + XICSFabric *xics; } Pnv8Chip; =20 #define TYPE_PNV9_CHIP "pnv9-chip" diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 230bb9f31235..a0e0e43610a2 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -790,6 +790,13 @@ static void pnv_init(MachineState *machine) &error_fatal); object_property_set_int(chip, machine->smp.cores, "nr-cores", &error_fatal); + /* + * The POWER8 machine use the XICS interrupt interface. + * Propagate the XICS fabric to the chip and its controllers. + */ + if (object_dynamic_cast(OBJECT(pnv), TYPE_XICS_FABRIC)) { + object_property_set_link(chip, OBJECT(pnv), "xics", &error_abo= rt); + } object_property_set_bool(chip, true, "realized", &error_fatal); } g_free(chip_typename); @@ -831,12 +838,12 @@ static uint32_t pnv_chip_core_pir_p8(PnvChip *chip, u= int32_t core_id) static void pnv_chip_power8_intc_create(PnvChip *chip, PowerPCCPU *cpu, Error **errp) { + Pnv8Chip *chip8 =3D PNV8_CHIP(chip); Error *local_err =3D NULL; Object *obj; PnvCPUState *pnv_cpu =3D pnv_cpu_state(cpu); =20 - obj =3D icp_create(OBJECT(cpu), TYPE_PNV_ICP, XICS_FABRIC(qdev_get_mac= hine()), - &local_err); + obj =3D icp_create(OBJECT(cpu), TYPE_PNV_ICP, chip8->xics, &local_err); if (local_err) { error_propagate(errp, local_err); return; @@ -990,6 +997,12 @@ static void pnv_chip_power8_instance_init(Object *obj) { Pnv8Chip *chip8 =3D PNV8_CHIP(obj); =20 + object_property_add_link(obj, "xics", TYPE_XICS_FABRIC, + (Object **)&chip8->xics, + object_property_allow_set_link, + OBJ_PROP_LINK_STRONG, + &error_abort); + object_initialize_child(obj, "psi", &chip8->psi, sizeof(chip8->psi), TYPE_PNV8_PSI, &error_abort, NULL); =20 @@ -1009,7 +1022,6 @@ static void pnv_chip_icp_realize(Pnv8Chip *chip8, Err= or **errp) PnvChipClass *pcc =3D PNV_CHIP_GET_CLASS(chip); int i, j; char *name; - XICSFabric *xi =3D XICS_FABRIC(qdev_get_machine()); =20 name =3D g_strdup_printf("icp-%x", chip->chip_id); memory_region_init(&chip8->icp_mmio, OBJECT(chip), name, PNV_ICP_SIZE); @@ -1025,7 +1037,7 @@ static void pnv_chip_icp_realize(Pnv8Chip *chip8, Err= or **errp) =20 for (j =3D 0; j < CPU_CORE(pnv_core)->nr_threads; j++) { uint32_t pir =3D pcc->core_pir(chip, core_hwid) + j; - PnvICPState *icp =3D PNV_ICP(xics_icp_get(xi, pir)); + PnvICPState *icp =3D PNV_ICP(xics_icp_get(chip8->xics, pir)); =20 memory_region_add_subregion(&chip8->icp_mmio, pir << 12, &icp->mmio); @@ -1041,6 +1053,8 @@ static void pnv_chip_power8_realize(DeviceState *dev,= Error **errp) Pnv8Psi *psi8 =3D &chip8->psi; Error *local_err =3D NULL; =20 + assert(chip8->xics); + /* XSCOM bridge is first */ pnv_xscom_realize(chip, PNV_XSCOM_SIZE, &local_err); if (local_err) { @@ -1058,7 +1072,7 @@ static void pnv_chip_power8_realize(DeviceState *dev,= Error **errp) /* Processor Service Interface (PSI) Host Bridge */ object_property_set_int(OBJECT(&chip8->psi), PNV_PSIHB_BASE(chip), "bar", &error_fatal); - object_property_set_link(OBJECT(&chip8->psi), OBJECT(qdev_get_machine(= )), + object_property_set_link(OBJECT(&chip8->psi), OBJECT(chip8->xics), ICS_PROP_XICS, &error_abort); object_property_set_bool(OBJECT(&chip8->psi), true, "realized", &local= _err); if (local_err) { --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324494; cv=none; d=zohomail.com; s=zohoarc; b=J1mkb2alrJJHIuOvnmQmAGAWL3iAi6knV2/BECHs7fy2Upcok9jfTze7kdp1yG8Z/EtRtoQQMFJOYaOugqT4kwomSRzcVDKcjTHhBo9vybBGRVR4Nww/UNZXfCG9O7SsLkvFlnZYjUK5T3vi0/r0GWsY1CFuP5L5WcCxdtDuS+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324494; 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; bh=jzR4FJkNp/eK+X5iXKqIlGiKoD7h4JAWacy4LoIUrOw=; b=jMYoROxPa9KE+A4Aq+MYencgiba+DmyvvxuPfYj6JL1Djr5Zd0tuPBtaQ+MkuSeDzB/Icwaks6RBl+qH6SZ43ZCPmvFXLmBacwynQJd/660psbLPbYNUFAcxWz0M4pbv2UtoQbtjC0Kc7qY/FRbdjuvK6KlOJKxlG/yl53uBPLQ= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324494815677.7393803786752; Mon, 6 Jan 2020 07:28:14 -0800 (PST) Received: from localhost ([::1]:53516 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUIe-0007Ev-R6 for importer@patchew.org; Mon, 06 Jan 2020 10:28:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49419) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioToh-0000Nw-M8 for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTog-0000ct-F8 for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:15 -0500 Received: from 8.mo173.mail-out.ovh.net ([46.105.46.122]:51634) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTog-0000bL-9L for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:14 -0500 Received: from player731.ha.ovh.net (unknown [10.109.143.109]) by mo173.mail-out.ovh.net (Postfix) with ESMTP id 6090412B2AF for ; Mon, 6 Jan 2020 15:57:12 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 8B77EDB3A549; Mon, 6 Jan 2020 14:57:05 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 03/12] pnv/xive: Use device_class_set_parent_realize() Date: Mon, 6 Jan 2020 15:56:36 +0100 Message-Id: <20200106145645.4539-4-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5388556956550532070 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedt 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.46.122 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz The XIVE router base class currently inherits an empty realize hook from the sysbus device base class, but it will soon implement one of its own to perform some sanity checks. Do the preliminary plumbing to have it called. Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: David Gibson --- include/hw/ppc/pnv_xive.h | 10 ++++++++++ hw/intc/pnv_xive.c | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/hw/ppc/pnv_xive.h b/include/hw/ppc/pnv_xive.h index f4c7caad40ee..76cf16f64472 100644 --- a/include/hw/ppc/pnv_xive.h +++ b/include/hw/ppc/pnv_xive.h @@ -16,6 +16,10 @@ struct PnvChip; =20 #define TYPE_PNV_XIVE "pnv-xive" #define PNV_XIVE(obj) OBJECT_CHECK(PnvXive, (obj), TYPE_PNV_XIVE) +#define PNV_XIVE_CLASS(klass) \ + OBJECT_CLASS_CHECK(PnvXiveClass, (klass), TYPE_PNV_XIVE) +#define PNV_XIVE_GET_CLASS(obj) \ + OBJECT_GET_CLASS(PnvXiveClass, (obj), TYPE_PNV_XIVE) =20 #define XIVE_BLOCK_MAX 16 =20 @@ -85,6 +89,12 @@ typedef struct PnvXive { uint64_t edt[XIVE_TABLE_EDT_MAX]; } PnvXive; =20 +typedef struct PnvXiveClass { + XiveRouterClass parent_class; + + DeviceRealize parent_realize; +} PnvXiveClass; + void pnv_xive_pic_print_info(PnvXive *xive, Monitor *mon); =20 #endif /* PPC_PNV_XIVE_H */ diff --git a/hw/intc/pnv_xive.c b/hw/intc/pnv_xive.c index a0a69b98a713..6412cf222eae 100644 --- a/hw/intc/pnv_xive.c +++ b/hw/intc/pnv_xive.c @@ -1816,10 +1816,17 @@ static void pnv_xive_init(Object *obj) static void pnv_xive_realize(DeviceState *dev, Error **errp) { PnvXive *xive =3D PNV_XIVE(dev); + PnvXiveClass *pxc =3D PNV_XIVE_GET_CLASS(dev); XiveSource *xsrc =3D &xive->ipi_source; XiveENDSource *end_xsrc =3D &xive->end_source; Error *local_err =3D NULL; =20 + pxc->parent_realize(dev, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + assert(xive->chip); =20 /* @@ -1947,10 +1954,12 @@ static void pnv_xive_class_init(ObjectClass *klass,= void *data) XiveRouterClass *xrc =3D XIVE_ROUTER_CLASS(klass); XiveNotifierClass *xnc =3D XIVE_NOTIFIER_CLASS(klass); XivePresenterClass *xpc =3D XIVE_PRESENTER_CLASS(klass); + PnvXiveClass *pxc =3D PNV_XIVE_CLASS(klass); =20 xdc->dt_xscom =3D pnv_xive_dt_xscom; =20 dc->desc =3D "PowerNV XIVE Interrupt Controller"; + device_class_set_parent_realize(dc, pnv_xive_realize, &pxc->parent_rea= lize); dc->realize =3D pnv_xive_realize; dc->props =3D pnv_xive_properties; =20 @@ -1971,6 +1980,7 @@ static const TypeInfo pnv_xive_info =3D { .instance_init =3D pnv_xive_init, .instance_size =3D sizeof(PnvXive), .class_init =3D pnv_xive_class_init, + .class_size =3D sizeof(PnvXiveClass), .interfaces =3D (InterfaceInfo[]) { { TYPE_PNV_XSCOM_INTERFACE }, { } --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324155; cv=none; d=zohomail.com; s=zohoarc; b=dnUTmH07KbpxRXl9NOlem3qOf8WDDLr1BmxMJ3nci9bJtaBtaSiLvFB9w/OmC9fhQ/Xby0xnbtEJVzjtWe8Hj9b0NpgYF52QVy5XzlWPZccZP9Dx3ucR6ZLaZtxpN9DhQ88iYbk3NR64NwCF6TpcEak+JO5wkT85bAeZRAsEkDM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324155; 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; bh=gMCMoarNUFevJdiMeM8lS0bIWpcLMWiE6GGYcfScUNY=; b=CV9ntxwC0f/pTh3Ovoe/ql9NNE5VFFYXIX056wUeOvQEog4CVDt6ndsj/7lJMkrzXBzrSSOgZdKwyA4PAlV1rTUNA9szdM/IO4MJdLQ9+NxDtbybvGK6xSE98wInMr01TX88DWr2Uh4ZTutzcGneOertVz6ahkpyQB4LumU3phU= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324155520125.77708585975006; Mon, 6 Jan 2020 07:22:35 -0800 (PST) Received: from localhost ([::1]:53412 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUDB-0006hT-Nm for importer@patchew.org; Mon, 06 Jan 2020 10:22:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49490) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTom-0000W5-OT for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTol-0000io-Dj for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:20 -0500 Received: from 1.mo69.mail-out.ovh.net ([178.33.251.173]:41206) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTol-0000iM-6S for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:19 -0500 Received: from player731.ha.ovh.net (unknown [10.109.146.76]) by mo69.mail-out.ovh.net (Postfix) with ESMTP id E979F7AE3B for ; Mon, 6 Jan 2020 15:57:17 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 41633DB3A5F9; Mon, 6 Jan 2020 14:57:12 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 04/12] spapr, pnv, xive: Add a "xive-fabric" link to the XIVE router Date: Mon, 6 Jan 2020 15:56:37 +0100 Message-Id: <20200106145645.4539-5-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5389964332362992614 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedu 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: 178.33.251.173 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz In order to get rid of qdev_get_machine(), first add a pointer to the XIVE fabric under the XIVE router and make it configurable through a QOM link property. Configure it in the spapr and pnv machine. In the case of pnv, the XIVE routers are under the chip, so this is done with a QOM alias property of the POWER9 pnv chip. Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- include/hw/ppc/xive.h | 5 +++-- hw/intc/xive.c | 8 ++++++++ hw/ppc/pnv.c | 6 ++++++ hw/ppc/spapr_irq.c | 2 ++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/hw/ppc/xive.h b/include/hw/ppc/xive.h index 1b7b89098f71..1ded82b1cda8 100644 --- a/include/hw/ppc/xive.h +++ b/include/hw/ppc/xive.h @@ -324,9 +324,12 @@ typedef struct XiveTCTX { /* * XIVE Router */ +typedef struct XiveFabric XiveFabric; =20 typedef struct XiveRouter { SysBusDevice parent; + + XiveFabric *xfb; } XiveRouter; =20 #define TYPE_XIVE_ROUTER "xive-router" @@ -402,8 +405,6 @@ int xive_presenter_tctx_match(XivePresenter *xptr, Xive= TCTX *tctx, * XIVE Fabric (Interface between Interrupt Controller and Machine) */ =20 -typedef struct XiveFabric XiveFabric; - #define TYPE_XIVE_FABRIC "xive-fabric" #define XIVE_FABRIC(obj) \ INTERFACE_CHECK(XiveFabric, (obj), TYPE_XIVE_FABRIC) diff --git a/hw/intc/xive.c b/hw/intc/xive.c index d4c6e21703b3..6df89b06da38 100644 --- a/hw/intc/xive.c +++ b/hw/intc/xive.c @@ -1714,12 +1714,19 @@ void xive_router_notify(XiveNotifier *xn, uint32_t = lisn) xive_get_field64(EAS_END_DATA, eas.w)); } =20 +static Property xive_router_properties[] =3D { + DEFINE_PROP_LINK("xive-fabric", XiveRouter, xfb, + TYPE_XIVE_FABRIC, XiveFabric *), + DEFINE_PROP_END_OF_LIST(), +}; + static void xive_router_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); XiveNotifierClass *xnc =3D XIVE_NOTIFIER_CLASS(klass); =20 dc->desc =3D "XIVE Router Engine"; + dc->props =3D xive_router_properties; xnc->notify =3D xive_router_notify; } =20 @@ -1727,6 +1734,7 @@ static const TypeInfo xive_router_info =3D { .name =3D TYPE_XIVE_ROUTER, .parent =3D TYPE_SYS_BUS_DEVICE, .abstract =3D true, + .instance_size =3D sizeof(XiveRouter), .class_size =3D sizeof(XiveRouterClass), .class_init =3D xive_router_class_init, .interfaces =3D (InterfaceInfo[]) { diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index a0e0e43610a2..6d003144b6fc 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -797,6 +797,10 @@ static void pnv_init(MachineState *machine) if (object_dynamic_cast(OBJECT(pnv), TYPE_XICS_FABRIC)) { object_property_set_link(chip, OBJECT(pnv), "xics", &error_abo= rt); } + if (object_dynamic_cast(OBJECT(pnv), TYPE_XIVE_FABRIC)) { + object_property_set_link(chip, OBJECT(pnv), "xive-fabric", + &error_abort); + } object_property_set_bool(chip, true, "realized", &error_fatal); } g_free(chip_typename); @@ -1215,6 +1219,8 @@ static void pnv_chip_power9_instance_init(Object *obj) =20 object_initialize_child(obj, "xive", &chip9->xive, sizeof(chip9->xive), TYPE_PNV_XIVE, &error_abort, NULL); + object_property_add_alias(obj, "xive-fabric", OBJECT(&chip9->xive), + "xive-fabric", &error_abort); =20 object_initialize_child(obj, "psi", &chip9->psi, sizeof(chip9->psi), TYPE_PNV9_PSI, &error_abort, NULL); diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c index 373505d28b9a..1f630f296bd5 100644 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@ -332,6 +332,8 @@ void spapr_irq_init(SpaprMachineState *spapr, Error **e= rrp) * priority */ qdev_prop_set_uint32(dev, "nr-ends", nr_servers << 3); + object_property_set_link(OBJECT(dev), OBJECT(spapr), "xive-fabric", + &error_abort); qdev_init_nofail(dev); =20 spapr->xive =3D SPAPR_XIVE(dev); --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324698; cv=none; d=zohomail.com; s=zohoarc; b=FmPf2t1g+0SNObydvoa+BHMk0EvcgXWDV+tjKLWSHwnQbpFGjvY83T7pgXWA9oSauxDyFTrUdB05o0sBVmVeXVK5J8FQewVv8Eq0TrQuGM3r1jVYTe4PpsLN6R2S5nNooe9CKrMKo1C0Oe3dCqxmrnOh2qjm1K+EgqIpEQgbZNo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324698; 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; bh=tT9IoRpgnOETDqskPOfw4yDkz8UN6egPx0IwhHjqplg=; b=VdTeQokEXq79ObH3u6rbkldKp1gEK64zWoRl8qxDXbqvl/dLIngokjsGhpPhsEXRdRYX1pJNo/THGYg4nKWh0PSavru6qaASIenmCS/c6OG60yLJRLgipxUVCM5DQT1vevAangco1PITjHAESrfXIKZ/YOui/xiM+eFvFvPIlr0= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324698144750.5570129435607; Mon, 6 Jan 2020 07:31:38 -0800 (PST) Received: from localhost ([::1]:53578 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioULw-0003eO-SL for importer@patchew.org; Mon, 06 Jan 2020 10:31:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49617) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTot-0000gm-K4 for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTos-0000px-FJ for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:27 -0500 Received: from 10.mo177.mail-out.ovh.net ([46.105.73.133]:49494) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTos-0000o9-8t for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:26 -0500 Received: from player731.ha.ovh.net (unknown [10.109.143.136]) by mo177.mail-out.ovh.net (Postfix) with ESMTP id 2457911D0E6 for ; Mon, 6 Jan 2020 15:57:24 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id F1A87DB3A677; Mon, 6 Jan 2020 14:57:17 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 05/12] xive: Use the XIVE fabric link under the XIVE router Date: Mon, 6 Jan 2020 15:56:38 +0100 Message-Id: <20200106145645.4539-6-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5391934658024213478 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjeduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedu 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.73.133 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz Now that the spapr and pnv machines do set the "xive-fabric" link, the use of the XIVE fabric pointer becomes mandatory. This is checked with an assert() in a new realize hook. Since the XIVE router is realized at machine init for the all the machine's life time, no risk to abort an already running guest (ie. not a hotplug path). This gets rid of a qdev_get_machine() call. Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- hw/intc/xive.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/hw/intc/xive.c b/hw/intc/xive.c index 6df89b06da38..12a362b681a6 100644 --- a/hw/intc/xive.c +++ b/hw/intc/xive.c @@ -1378,6 +1378,13 @@ static int xive_router_get_block_id(XiveRouter *xrtr) return xrc->get_block_id(xrtr); } =20 +static void xive_router_realize(DeviceState *dev, Error **errp) +{ + XiveRouter *xrtr =3D XIVE_ROUTER(dev); + + assert(xrtr->xfb); +} + /* * Encode the HW CAM line in the block group mode format : * @@ -1470,12 +1477,11 @@ int xive_presenter_tctx_match(XivePresenter *xptr, = XiveTCTX *tctx, * * The parameters represent what is sent on the PowerBus */ -static bool xive_presenter_notify(uint8_t format, +static bool xive_presenter_notify(XiveFabric *xfb, uint8_t format, uint8_t nvt_blk, uint32_t nvt_idx, bool cam_ignore, uint8_t priority, uint32_t logic_serv) { - XiveFabric *xfb =3D XIVE_FABRIC(qdev_get_machine()); XiveFabricClass *xfc =3D XIVE_FABRIC_GET_CLASS(xfb); XiveTCTXMatch match =3D { .tctx =3D NULL, .ring =3D 0 }; int count; @@ -1607,7 +1613,7 @@ static void xive_router_end_notify(XiveRouter *xrtr, = uint8_t end_blk, return; } =20 - found =3D xive_presenter_notify(format, nvt_blk, nvt_idx, + found =3D xive_presenter_notify(xrtr->xfb, format, nvt_blk, nvt_idx, xive_get_field32(END_W7_F0_IGNORE, end.w7), priority, xive_get_field32(END_W7_F1_LOG_SERVER_ID, end.w7= )); @@ -1727,6 +1733,8 @@ static void xive_router_class_init(ObjectClass *klass= , void *data) =20 dc->desc =3D "XIVE Router Engine"; dc->props =3D xive_router_properties; + /* Parent is SysBusDeviceClass. No need to call its realize hook */ + dc->realize =3D xive_router_realize; xnc->notify =3D xive_router_notify; } =20 --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324391; cv=none; d=zohomail.com; s=zohoarc; b=X1meAivXb/nqaC9TPL9VNN7B7uNeBgkxvRRTKxb1GrAV1jlPcKreFq4rq6hC9T+Te+QPFOzX0VS98WlPMR5R5PajypDgl7Wr5jvVe3JbqsZ1bJJBLCkCz3NTZUrwGu6oOtN5EEw+tfVAHas3YrqyFv2GC1S1T+UY7xpf2J0Q5iM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324391; 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; bh=53eoHxiIGVM9U95JMlqFBiRMQkCe3Ahqcd4W2JVMe8k=; b=AdSWuZNxghFJp+wLDwRkqy+une07oFigoSOdTZqBkAVFnMbvDIAowGq41S0Or0a9UiIH4+VdwrWSDFXtpqusbpf7yOtN8G4K/YhUK98o1APXukvOpYzD8Fh2MTDa6GWn6B+CFfiyjdta3L2v7kY58CyEXhuwd+uFua9w7msXC7c= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 157832439129945.400693786669194; Mon, 6 Jan 2020 07:26:31 -0800 (PST) Received: from localhost ([::1]:53484 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUGz-0004Kj-LT for importer@patchew.org; Mon, 06 Jan 2020 10:26:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49713) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioToz-0000pP-1Q for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTox-0000vi-RT for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:32 -0500 Received: from 10.mo3.mail-out.ovh.net ([87.98.165.232]:51347) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTox-0000uP-Lt for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:31 -0500 Received: from player731.ha.ovh.net (unknown [10.109.146.175]) by mo3.mail-out.ovh.net (Postfix) with ESMTP id 0A13D23BB63 for ; Mon, 6 Jan 2020 15:57:29 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 33FA7DB3A6E1; Mon, 6 Jan 2020 14:57:24 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 06/12] ppc/pnv: Add an "nr-threads" property to the base chip class Date: Mon, 6 Jan 2020 15:56:39 +0100 Message-Id: <20200106145645.4539-7-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5393342032797404134 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedt 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: 87.98.165.232 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz Set it at chip creation and forward it to the cores. This allows to drop a call to qdev_get_machine(). Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: David Gibson --- include/hw/ppc/pnv.h | 1 + hw/ppc/pnv.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index 56277862dd53..4b9012f9949e 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -48,6 +48,7 @@ typedef struct PnvChip { uint64_t ram_size; =20 uint32_t nr_cores; + uint32_t nr_threads; uint64_t cores_mask; PnvCore **cores; =20 diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 6d003144b6fc..8f072ea7eff1 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -790,6 +790,8 @@ static void pnv_init(MachineState *machine) &error_fatal); object_property_set_int(chip, machine->smp.cores, "nr-cores", &error_fatal); + object_property_set_int(chip, machine->smp.threads, + "nr-threads", &error_fatal); /* * The POWER8 machine use the XICS interrupt interface. * Propagate the XICS fabric to the chip and its controllers. @@ -1514,7 +1516,6 @@ static void pnv_chip_core_sanitize(PnvChip *chip, Err= or **errp) =20 static void pnv_chip_core_realize(PnvChip *chip, Error **errp) { - MachineState *ms =3D MACHINE(qdev_get_machine()); Error *error =3D NULL; PnvChipClass *pcc =3D PNV_CHIP_GET_CLASS(chip); const char *typename =3D pnv_chip_core_typename(chip); @@ -1550,8 +1551,8 @@ static void pnv_chip_core_realize(PnvChip *chip, Erro= r **errp) object_property_add_child(OBJECT(chip), core_name, OBJECT(pnv_core= ), &error_abort); chip->cores[i] =3D pnv_core; - object_property_set_int(OBJECT(pnv_core), ms->smp.threads, "nr-thr= eads", - &error_fatal); + object_property_set_int(OBJECT(pnv_core), chip->nr_threads, + "nr-threads", &error_fatal); object_property_set_int(OBJECT(pnv_core), core_hwid, CPU_CORE_PROP_CORE_ID, &error_fatal); object_property_set_int(OBJECT(pnv_core), @@ -1590,6 +1591,7 @@ static Property pnv_chip_properties[] =3D { DEFINE_PROP_UINT64("ram-size", PnvChip, ram_size, 0), DEFINE_PROP_UINT32("nr-cores", PnvChip, nr_cores, 1), DEFINE_PROP_UINT64("cores-mask", PnvChip, cores_mask, 0x0), + DEFINE_PROP_UINT32("nr-threads", PnvChip, nr_threads, 1), DEFINE_PROP_END_OF_LIST(), }; =20 --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324356; cv=none; d=zohomail.com; s=zohoarc; b=Uo5Bq1GvLeWJNDeOYnwq6/ackW64h7QHtMu/LhLnxm3PM2NTScWpXEhROWELIeV37S8FTKERGps2Ru+7Umpeb1/CmXHD1/SZavFE0yFzoK8X+MwS1fST1JkJUPlCpov4bOsH17lP2VBvl7AhzbGF2m7EwU18fyIQkQbawDRYC1Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324356; 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; bh=Q5vHaB+ipe5xXz9l/jfzf4V7uR/SiEnoEfKfE9RP7NU=; b=i5IEG7/4lQVeLxwFbaS5KZx81b5Yrt3Xz8+ruPhJJapfg4Nemu9iehtHAqZnz6FNh+MqwKc+hk0F/F7jzc0rC34f+YzHapTYFgbtD0k1JfX1gP7tCaR2M5mGwe7rtSJ1LT2XITw2JMLOmiqSKeKdxn7HQArqiGdZjRptIkxJ9S0= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324356780858.5112728529286; Mon, 6 Jan 2020 07:25:56 -0800 (PST) Received: from localhost ([::1]:53482 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUGR-0003VN-DP for importer@patchew.org; Mon, 06 Jan 2020 10:25:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49795) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTp5-00010U-5G for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTp3-00012z-UO for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:38 -0500 Received: from 19.mo3.mail-out.ovh.net ([178.32.98.231]:47493) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTp3-00011f-Mz for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:37 -0500 Received: from player731.ha.ovh.net (unknown [10.109.146.240]) by mo3.mail-out.ovh.net (Postfix) with ESMTP id 2EE0E23BCFE for ; Mon, 6 Jan 2020 15:57:36 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id DC2B6DB3A773; Mon, 6 Jan 2020 14:57:29 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 07/12] ppc/pnv: Add a "pnor" const link property to the BMC internal simulator Date: Mon, 6 Jan 2020 15:56:40 +0100 Message-Id: <20200106145645.4539-8-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5395312356824550374 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedu 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: 178.32.98.231 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz This allows to get rid of a call to qdev_get_machine(). Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- include/hw/ppc/pnv.h | 2 +- hw/ppc/pnv.c | 2 +- hw/ppc/pnv_bmc.c | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index 4b9012f9949e..2504d8cd4f6b 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -229,7 +229,7 @@ PnvChip *pnv_get_chip(uint32_t chip_id); */ void pnv_dt_bmc_sensors(IPMIBmc *bmc, void *fdt); void pnv_bmc_powerdown(IPMIBmc *bmc); -IPMIBmc *pnv_bmc_create(void); +IPMIBmc *pnv_bmc_create(PnvPnor *pnor); =20 /* * POWER8 MMIO base addresses diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 8f072ea7eff1..b2e3d11ad000 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -808,7 +808,7 @@ static void pnv_init(MachineState *machine) g_free(chip_typename); =20 /* Create the machine BMC simulator */ - pnv->bmc =3D pnv_bmc_create(); + pnv->bmc =3D pnv_bmc_create(pnv->pnor); =20 /* Instantiate ISA bus on chip 0 */ pnv->isa_bus =3D pnv_isa_create(pnv->chips[0], &error_fatal); diff --git a/hw/ppc/pnv_bmc.c b/hw/ppc/pnv_bmc.c index 07fa1e1c7e45..8863354c1c08 100644 --- a/hw/ppc/pnv_bmc.c +++ b/hw/ppc/pnv_bmc.c @@ -143,8 +143,8 @@ static uint16_t bytes_to_blocks(uint32_t bytes) static void hiomap_cmd(IPMIBmcSim *ibs, uint8_t *cmd, unsigned int cmd_len, RspBuffer *rsp) { - PnvMachineState *pnv =3D PNV_MACHINE(qdev_get_machine()); - PnvPnor *pnor =3D pnv->pnor; + PnvPnor *pnor =3D PNV_PNOR(object_property_get_link(OBJECT(ibs), "pnor= ", + &error_abort)); uint32_t pnor_size =3D pnor->size; uint32_t pnor_addr =3D PNOR_SPI_OFFSET; bool readonly =3D false; @@ -217,11 +217,13 @@ static const IPMINetfn hiomap_netfn =3D { * Instantiate the machine BMC. PowerNV uses the QEMU internal * simulator but it could also be external. */ -IPMIBmc *pnv_bmc_create(void) +IPMIBmc *pnv_bmc_create(PnvPnor *pnor) { Object *obj; =20 obj =3D object_new(TYPE_IPMI_BMC_SIMULATOR); + object_ref(OBJECT(pnor)); + object_property_add_const_link(obj, "pnor", OBJECT(pnor), &error_abort= ); object_property_set_bool(obj, true, "realized", &error_fatal); =20 /* Install the HIOMAP protocol handlers to access the PNOR */ --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324330; cv=none; d=zohomail.com; s=zohoarc; b=SOLN1TfiHB/oXE/gdJquxDOInC1B7pRX3u5kAKlZrxrP1xQrRKHsEJePu1cUkqynTRDGYk/rf6IhNldqrw1mHpGaNf8rGTGfc14tL6PSPv0y7IPhNZg+FsxS3/yrGK+ag5MiP5W78qRjuIU67ca53AnR3BIRag0s7SFhWm8r5ZU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324330; 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; bh=AWFRzvH4JcAgVsHqopsIEP9SBtRHhjN07oQAOU5sI/Q=; b=hOGJJAzqRRAOdRRiqcGPoSXhgE2JH+BX6omlTumU7WgFkC75eYuxcxU399UgpCkfjgHZhOeaOeHnUa9wJnB5lZL6Goddl2EZTQ4A/qMd0yRPNBXRLDfeo9A1CfewFJcGH3hQXNE7MhVsjwiCAFCglY8t9UZm3orvD4WKPVOTrls= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324330630848.1325109741533; Mon, 6 Jan 2020 07:25:30 -0800 (PST) Received: from localhost ([::1]:53466 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUG0-0002hC-L7 for importer@patchew.org; Mon, 06 Jan 2020 10:25:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49871) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTpB-00017V-VP for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTpA-00018Z-4p for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:45 -0500 Received: from 10.mo68.mail-out.ovh.net ([46.105.79.203]:45380) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTp9-00017K-QN for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:43 -0500 Received: from player731.ha.ovh.net (unknown [10.109.146.137]) by mo68.mail-out.ovh.net (Postfix) with ESMTP id DCF98155A6E for ; Mon, 6 Jan 2020 15:57:41 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 324B7DB3A7FE; Mon, 6 Jan 2020 14:57:36 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 08/12] xive: Add a "presenter" link property to the TCTX object Date: Mon, 6 Jan 2020 15:56:41 +0100 Message-Id: <20200106145645.4539-9-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5396719732748028902 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedu 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.79.203 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" This will be used in subsequent patches to access the XIVE associated to a TCTX without reaching out to the machine through qdev_get_machine(). Signed-off-by: C=C3=A9dric Le Goater [ groug: - split patch - write subject and changelog ] Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- include/hw/ppc/xive.h | 8 +++++--- hw/intc/spapr_xive.c | 2 +- hw/intc/xive.c | 6 +++++- hw/ppc/pnv.c | 3 ++- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/hw/ppc/xive.h b/include/hw/ppc/xive.h index 1ded82b1cda8..705cf48176fc 100644 --- a/include/hw/ppc/xive.h +++ b/include/hw/ppc/xive.h @@ -311,6 +311,8 @@ void xive_source_set_irq(void *opaque, int srcno, int v= al); #define XIVE_TM_RING_COUNT 4 #define XIVE_TM_RING_SIZE 0x10 =20 +typedef struct XivePresenter XivePresenter; + typedef struct XiveTCTX { DeviceState parent_obj; =20 @@ -319,6 +321,8 @@ typedef struct XiveTCTX { qemu_irq os_output; =20 uint8_t regs[XIVE_TM_RING_COUNT * XIVE_TM_RING_SIZE]; + + XivePresenter *xptr; } XiveTCTX; =20 /* @@ -378,8 +382,6 @@ typedef struct XiveTCTXMatch { uint8_t ring; } XiveTCTXMatch; =20 -typedef struct XivePresenter XivePresenter; - #define TYPE_XIVE_PRESENTER "xive-presenter" #define XIVE_PRESENTER(obj) \ INTERFACE_CHECK(XivePresenter, (obj), TYPE_XIVE_PRESENTER) @@ -467,7 +469,7 @@ uint64_t xive_tctx_tm_read(XivePresenter *xptr, XiveTCT= X *tctx, hwaddr offset, unsigned size); =20 void xive_tctx_pic_print_info(XiveTCTX *tctx, Monitor *mon); -Object *xive_tctx_create(Object *cpu, XiveRouter *xrtr, Error **errp); +Object *xive_tctx_create(Object *cpu, XivePresenter *xptr, Error **errp); void xive_tctx_reset(XiveTCTX *tctx); void xive_tctx_destroy(XiveTCTX *tctx); void xive_tctx_ipb_update(XiveTCTX *tctx, uint8_t ring, uint8_t ipb); diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c index 32322470a8b8..76631238783e 100644 --- a/hw/intc/spapr_xive.c +++ b/hw/intc/spapr_xive.c @@ -601,7 +601,7 @@ static int spapr_xive_cpu_intc_create(SpaprInterruptCon= troller *intc, Object *obj; SpaprCpuState *spapr_cpu =3D spapr_cpu_state(cpu); =20 - obj =3D xive_tctx_create(OBJECT(cpu), XIVE_ROUTER(xive), errp); + obj =3D xive_tctx_create(OBJECT(cpu), XIVE_PRESENTER(xive), errp); if (!obj) { return -1; } diff --git a/hw/intc/xive.c b/hw/intc/xive.c index 12a362b681a6..bc8019c4c973 100644 --- a/hw/intc/xive.c +++ b/hw/intc/xive.c @@ -654,6 +654,7 @@ static void xive_tctx_realize(DeviceState *dev, Error *= *errp) Error *local_err =3D NULL; =20 assert(tctx->cs); + assert(tctx->xptr); =20 cpu =3D POWERPC_CPU(tctx->cs); env =3D &cpu->env; @@ -727,6 +728,8 @@ static const VMStateDescription vmstate_xive_tctx =3D { =20 static Property xive_tctx_properties[] =3D { DEFINE_PROP_LINK("cpu", XiveTCTX, cs, TYPE_CPU, CPUState *), + DEFINE_PROP_LINK("presenter", XiveTCTX, xptr, TYPE_XIVE_PRESENTER, + XivePresenter *), DEFINE_PROP_END_OF_LIST(), }; =20 @@ -752,7 +755,7 @@ static const TypeInfo xive_tctx_info =3D { .class_init =3D xive_tctx_class_init, }; =20 -Object *xive_tctx_create(Object *cpu, XiveRouter *xrtr, Error **errp) +Object *xive_tctx_create(Object *cpu, XivePresenter *xptr, Error **errp) { Error *local_err =3D NULL; Object *obj; @@ -761,6 +764,7 @@ Object *xive_tctx_create(Object *cpu, XiveRouter *xrtr,= Error **errp) object_property_add_child(cpu, TYPE_XIVE_TCTX, obj, &error_abort); object_unref(obj); object_property_set_link(obj, cpu, "cpu", &error_abort); + object_property_set_link(obj, OBJECT(xptr), "presenter", &error_abort); object_property_set_bool(obj, true, "realized", &local_err); if (local_err) { goto error; diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index b2e3d11ad000..de44c7ddb304 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -913,7 +913,8 @@ static void pnv_chip_power9_intc_create(PnvChip *chip, = PowerPCCPU *cpu, * controller object is initialized afterwards. Hopefully, it's * only used at runtime. */ - obj =3D xive_tctx_create(OBJECT(cpu), XIVE_ROUTER(&chip9->xive), &loca= l_err); + obj =3D xive_tctx_create(OBJECT(cpu), XIVE_PRESENTER(&chip9->xive), + &local_err); if (local_err) { error_propagate(errp, local_err); return; --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324536; cv=none; d=zohomail.com; s=zohoarc; b=mjEYz8D6dbEA/QLLRslOrnySU77Wag3xP8Q5OtFYI/QS+Lk9SD9MwmB/QArvhBmWsqF86KTNAhlh1L2bH8KGUCA1wbTH4WoD/9kuWEetGggYwMVK9e6LgewvDteJ+XpoAR9j/qzEFSIDQzn+KoJEQVoES9VnAOCEArqc5HE8iSc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324536; 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; bh=vuFdt1THI5okM4vfIKGBC/i+e5CA6xni1GxmLnSVcnE=; b=g0iBwaBeuETsIqt+QT3tCjekOAZyDDM2+O9jkIDVBrtiClcUVaBa4eC/Z0w2eJxiQ1nOvhDAG+lAIrrpfB0/rqxI2qN0GpXxGiEG+j5e9/551Y6Ge9K1tGyKTuXEcesCb/wQnawBAOXs7yGOplX7BPKZtbOKQaKqkCht7McNpx8= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324536290838.1345777117396; Mon, 6 Jan 2020 07:28:56 -0800 (PST) Received: from localhost ([::1]:53522 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUJK-0008I2-Hc for importer@patchew.org; Mon, 06 Jan 2020 10:28:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49954) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTpG-0001BN-TI for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTpF-0001Dd-PD for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:50 -0500 Received: from 6.mo177.mail-out.ovh.net ([46.105.51.249]:46115) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTpF-0001Cp-JB for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:49 -0500 Received: from player731.ha.ovh.net (unknown [10.108.57.141]) by mo177.mail-out.ovh.net (Postfix) with ESMTP id EFBA511D0EA for ; Mon, 6 Jan 2020 15:57:47 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id EEC18DB3A82C; Mon, 6 Jan 2020 14:57:41 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 09/12] spapr/xive: Deduce the SpaprXive pointer from XiveTCTX::xptr Date: Mon, 6 Jan 2020 15:56:42 +0100 Message-Id: <20200106145645.4539-10-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5398408578433190886 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjeduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpeeh 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.51.249 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz And use it instead of reaching out to the machine. This allows to get rid of a call to qdev_get_machine() and to reduce the scope of another one so that it is only used within the argument list of error_append_hint(). This is an acceptable tradeoff compared to all it would require to know about the maximum number of CPUs here without calling qdev_get_machine(). Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- hw/intc/spapr_xive_kvm.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c index 32b2809210a0..edb7ee0e74f1 100644 --- a/hw/intc/spapr_xive_kvm.c +++ b/hw/intc/spapr_xive_kvm.c @@ -75,7 +75,7 @@ static void kvm_cpu_disable_all(void) =20 void kvmppc_xive_cpu_set_state(XiveTCTX *tctx, Error **errp) { - SpaprXive *xive =3D SPAPR_MACHINE(qdev_get_machine())->xive; + SpaprXive *xive =3D SPAPR_XIVE(tctx->xptr); uint64_t state[2]; int ret; =20 @@ -97,7 +97,7 @@ void kvmppc_xive_cpu_set_state(XiveTCTX *tctx, Error **er= rp) =20 void kvmppc_xive_cpu_get_state(XiveTCTX *tctx, Error **errp) { - SpaprXive *xive =3D SPAPR_MACHINE(qdev_get_machine())->xive; + SpaprXive *xive =3D SPAPR_XIVE(tctx->xptr); uint64_t state[2] =3D { 0 }; int ret; =20 @@ -152,8 +152,7 @@ void kvmppc_xive_cpu_synchronize_state(XiveTCTX *tctx, = Error **errp) =20 void kvmppc_xive_cpu_connect(XiveTCTX *tctx, Error **errp) { - MachineState *ms =3D MACHINE(qdev_get_machine()); - SpaprXive *xive =3D SPAPR_MACHINE(ms)->xive; + SpaprXive *xive =3D SPAPR_XIVE(tctx->xptr); unsigned long vcpu_id; int ret; =20 @@ -179,7 +178,7 @@ void kvmppc_xive_cpu_connect(XiveTCTX *tctx, Error **er= rp) vcpu_id, strerror(errno)); if (errno =3D=3D ENOSPC) { error_append_hint(&local_err, "Try -smp maxcpus=3DN with N < %= u\n", - ms->smp.max_cpus); + MACHINE(qdev_get_machine())->smp.max_cpus); } error_propagate(errp, local_err); return; --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324522; cv=none; d=zohomail.com; s=zohoarc; b=HhDm+dLVgPQLpGwkJKjhyhgHCEOQEJ+Aw+nRHpdDujYX19ADDlCFTgWFj6zfmqToYAP+EQIk580w92uC9ala6ZoU9SkRcBX6AKJu4Zaq5jA8rc86Szw9KK8VzL+VS9EaBJFNOWVJbEeGL6YNVWc9I7E5mGs0bk688/brnyhZR0M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324522; 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; bh=ANRrfszcyaND9Aezh0o7xqv/tNSqre6cNa6cHaonQf4=; b=a5oE3lkuCVOQS4pJyAkJ0SAZ2Vgk6S7zM6y3fuMMC9wfxhP/rmzzP5pEnFbD5z9xmolOnwQua9ULogZ0keke0WKDbh+D8p8F/n3TDCb7xzG4CGaDEjYi8Tvfr/HU207UK5HfpBBkioL+11nXWitFm0MXQRfu70hFrK0UjMAVK3s= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324522298214.67270014625478; Mon, 6 Jan 2020 07:28:42 -0800 (PST) Received: from localhost ([::1]:53518 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUJ6-0007um-PE for importer@patchew.org; Mon, 06 Jan 2020 10:28:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50017) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTpM-0001KF-QU for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTpL-0001IV-NC for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:56 -0500 Received: from 4.mo4.mail-out.ovh.net ([178.32.98.131]:55607) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTpL-0001HN-Hr for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:57:55 -0500 Received: from player731.ha.ovh.net (unknown [10.108.35.13]) by mo4.mail-out.ovh.net (Postfix) with ESMTP id C5F1C21DBC7 for ; Mon, 6 Jan 2020 15:57:53 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 02753DB3A84E; Mon, 6 Jan 2020 14:57:47 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 10/12] pnv/xive: Deduce the PnvXive pointer from XiveTCTX::xptr Date: Mon, 6 Jan 2020 15:56:43 +0100 Message-Id: <20200106145645.4539-11-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5400097432419470310 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedt 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: 178.32.98.131 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz And use it instead of reaching out to the machine. This allows to get rid of pnv_get_chip(). Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- include/hw/ppc/pnv.h | 2 -- hw/intc/pnv_xive.c | 8 ++------ hw/ppc/pnv.c | 14 -------------- 3 files changed, 2 insertions(+), 22 deletions(-) diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index 2504d8cd4f6b..d65dd32036c8 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -219,8 +219,6 @@ struct PnvMachineState { PnvPnor *pnor; }; =20 -PnvChip *pnv_get_chip(uint32_t chip_id); - #define PNV_FDT_ADDR 0x01000000 #define PNV_TIMEBASE_FREQ 512000000ULL =20 diff --git a/hw/intc/pnv_xive.c b/hw/intc/pnv_xive.c index 6412cf222eae..715fca61ae22 100644 --- a/hw/intc/pnv_xive.c +++ b/hw/intc/pnv_xive.c @@ -472,12 +472,8 @@ static uint8_t pnv_xive_get_block_id(XiveRouter *xrtr) static PnvXive *pnv_xive_tm_get_xive(PowerPCCPU *cpu) { int pir =3D ppc_cpu_pir(cpu); - PnvChip *chip; - PnvXive *xive; - - chip =3D pnv_get_chip(PNV9_PIR2CHIP(pir)); - assert(chip); - xive =3D &PNV9_CHIP(chip)->xive; + XivePresenter *xptr =3D XIVE_TCTX(pnv_cpu_state(cpu)->intc)->xptr; + PnvXive *xive =3D PNV_XIVE(xptr); =20 if (!pnv_xive_is_cpu_enabled(xive, cpu)) { xive_error(xive, "IC: CPU %x is not enabled", pir); diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index de44c7ddb304..924b8dc592fe 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -1705,20 +1705,6 @@ static int pnv_match_nvt(XiveFabric *xfb, uint8_t fo= rmat, return total_count; } =20 -PnvChip *pnv_get_chip(uint32_t chip_id) -{ - PnvMachineState *pnv =3D PNV_MACHINE(qdev_get_machine()); - int i; - - for (i =3D 0; i < pnv->num_chips; i++) { - PnvChip *chip =3D pnv->chips[i]; - if (chip->chip_id =3D=3D chip_id) { - return chip; - } - } - return NULL; -} - static void pnv_get_num_chips(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324671; cv=none; d=zohomail.com; s=zohoarc; b=koFvo6Lf+b9B7BGW5s7yfjHFMNgD7JxZHDu8vQhpyFlRYrGZtBxC7xslok6Jnp+hxAJk9ndh2d6rzeZ6WOZLm56pmbrZbhrNU3jdXWUA2ZtiRVc74KicVLUgJbQmC+V/u+wp3u8VBQGa1IePJlKxmkBdAiQQuojt4ZxRTn+n7u8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324671; 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; bh=usw+UqMaglwWyRPMmuul6zl2N6Kr6XgBIa5+HcpxqZI=; b=bI5T2Lr2dgUo0L5+IYTGs/p1lycqF1XpYafkxHLzk5TxSjQ95QxxQuMdHzMl/USj5pr7iojD5hY+c5m494l3N9lidS+WVgbrBQpjeEPHPEKVPN7FDzcK0SkNJDAfsAvXioGm33S1V1VxJwIyTCknG2kcC8tQ3oDoTpwGoQVCUww= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324671486597.0987972872275; Mon, 6 Jan 2020 07:31:11 -0800 (PST) Received: from localhost ([::1]:53574 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioULV-00031b-PG for importer@patchew.org; Mon, 06 Jan 2020 10:31:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50081) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTpT-0001SG-JY for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:58:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTpS-0001Mw-B1 for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:58:03 -0500 Received: from 4.mo173.mail-out.ovh.net ([46.105.34.219]:56943) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTpS-0001LP-5i for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:58:02 -0500 Received: from player731.ha.ovh.net (unknown [10.108.35.128]) by mo173.mail-out.ovh.net (Postfix) with ESMTP id 2A577123112 for ; Mon, 6 Jan 2020 15:58:00 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 9E6DDDB3A8A5; Mon, 6 Jan 2020 14:57:53 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 11/12] pnv/psi: Add device reset hook Date: Mon, 6 Jan 2020 15:56:44 +0100 Message-Id: <20200106145645.4539-12-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5402067756057856998 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedv 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.34.219 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz And call it from a QEMU reset handler. This allows each PNV child class to override the reset hook if needed, eg. POWER8 doesn't but POWER9 does. The proper way to do that would be to use device_class_set_parent_reset(), but defining a Pnv8PsiClass and a Pnv9PsiClass types with a parent_reset pointer adds a fair amount of code. Calling pnv_psi_reset() explicitely is fine for now. A subsequent patch will consolidate the call to qemu_register_reset() in a single place. Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- hw/ppc/pnv_psi.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c index 4da3d2568624..cf21e42d93b7 100644 --- a/hw/ppc/pnv_psi.c +++ b/hw/ppc/pnv_psi.c @@ -455,7 +455,7 @@ static const MemoryRegionOps pnv_psi_xscom_ops =3D { } }; =20 -static void pnv_psi_reset(void *dev) +static void pnv_psi_reset(DeviceState *dev) { PnvPsi *psi =3D PNV_PSI(dev); =20 @@ -464,6 +464,13 @@ static void pnv_psi_reset(void *dev) psi->regs[PSIHB_XSCOM_BAR] =3D psi->bar | PSIHB_BAR_EN; } =20 +static void pnv_psi_reset_handler(void *dev) +{ + DeviceClass *dc =3D DEVICE_GET_CLASS(dev); + + dc->reset(DEVICE(dev)); +} + static void pnv_psi_power8_instance_init(Object *obj) { Pnv8Psi *psi8 =3D PNV8_PSI(obj); @@ -526,7 +533,7 @@ static void pnv_psi_power8_realize(DeviceState *dev, Er= ror **errp) ((uint64_t) i << PSIHB_XIVR_SRC_SH); } =20 - qemu_register_reset(pnv_psi_reset, dev); + qemu_register_reset(pnv_psi_reset_handler, dev); } =20 static int pnv_psi_dt_xscom(PnvXScomInterface *dev, void *fdt, int xscom_o= ffset) @@ -809,7 +816,7 @@ static void pnv_psi_power9_irq_set(PnvPsi *psi, int irq= , bool state) qemu_set_irq(psi->qirqs[irq], state); } =20 -static void pnv_psi_power9_reset(void *dev) +static void pnv_psi_power9_reset(DeviceState *dev) { Pnv9Psi *psi =3D PNV9_PSI(dev); =20 @@ -863,7 +870,7 @@ static void pnv_psi_power9_realize(DeviceState *dev, Er= ror **errp) =20 pnv_psi_set_bar(psi, psi->bar | PSIHB_BAR_EN); =20 - qemu_register_reset(pnv_psi_power9_reset, dev); + qemu_register_reset(pnv_psi_reset_handler, dev); } =20 static void pnv_psi_power9_class_init(ObjectClass *klass, void *data) @@ -875,6 +882,7 @@ static void pnv_psi_power9_class_init(ObjectClass *klas= s, void *data) =20 dc->desc =3D "PowerNV PSI Controller POWER9"; dc->realize =3D pnv_psi_power9_realize; + dc->reset =3D pnv_psi_power9_reset; =20 ppc->xscom_pcba =3D PNV9_XSCOM_PSIHB_BASE; ppc->xscom_size =3D PNV9_XSCOM_PSIHB_SIZE; @@ -927,6 +935,7 @@ static void pnv_psi_class_init(ObjectClass *klass, void= *data) =20 dc->desc =3D "PowerNV PSI Controller"; dc->props =3D pnv_psi_properties; + dc->reset =3D pnv_psi_reset; } =20 static const TypeInfo pnv_psi_info =3D { --=20 2.21.1 From nobody Tue May 7 12:18:30 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; 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 ARC-Seal: i=1; a=rsa-sha256; t=1578324850; cv=none; d=zohomail.com; s=zohoarc; b=MaagJOuQTHhToNkIwHoFT1Kz8CPMjtd/H6Aj/CmTH7QG1eJ1wo5kaaJEQyBWvOoW+AZjCtekRZ+ozEUcPmGnbNbtW9LMRtMUSAi5+nTWb2ALYAY+uHVQfwKZ7htnETLSzyWy5G+/77jOi54501Kx1ch+g5DlD4DwcnXi9WuDM0o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578324850; 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; bh=je7DrSeiEj4NhfHfVO+ga1L7xnp1OV/m0DqFZ/tFO78=; b=hm8PFUDPN7uF3t+yrB6gschee/xn4g7NSBl2IyzmnxRsiG/0wXb/osL2EaEuqD0L8GUtYip+xhhBkh2E1GM+F4QMkzOkyiWNVwXi313qFDfSsRKrQ6biaXPnOIxYyUwAFrdikYwo2xuLzNNa5mQ3Pi9tLhzV2gI1CrGbHCh1jFc= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578324850973528.337853700642; Mon, 6 Jan 2020 07:34:10 -0800 (PST) Received: from localhost ([::1]:53640 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioUOP-00072v-I7 for importer@patchew.org; Mon, 06 Jan 2020 10:34:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50148) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioTpb-0001cH-QI for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:58:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioTpa-0001UY-GL for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:58:11 -0500 Received: from 4.mo68.mail-out.ovh.net ([46.105.59.63]:59412) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ioTpa-0001Sl-A1 for qemu-devel@nongnu.org; Mon, 06 Jan 2020 09:58:10 -0500 Received: from player731.ha.ovh.net (unknown [10.108.42.145]) by mo68.mail-out.ovh.net (Postfix) with ESMTP id CE3C0155AAE for ; Mon, 6 Jan 2020 15:58:07 +0100 (CET) Received: from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166]) (Authenticated sender: clg@kaod.org) by player731.ha.ovh.net (Postfix) with ESMTPSA id 35281DB3A926; Mon, 6 Jan 2020 14:58:00 +0000 (UTC) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: David Gibson Subject: [PATCH v3 12/12] pnv/psi: Consolidate some duplicated code in pnv_psi_realize() Date: Mon, 6 Jan 2020 15:56:45 +0100 Message-Id: <20200106145645.4539-13-clg@kaod.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106145645.4539-1-clg@kaod.org> References: <20200106145645.4539-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 5404038079288347622 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdehtddgjedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejfedurdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpeef 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.59.63 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, Greg Kurz , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Greg Kurz The proper way to do that would be to use device_class_set_parent_realize(), but defining a Pnv8PsiClass and a Pnv9PsiClass types with a parent_realize pointer adds a fair amount of code. Calling pnv_psi_realize() explicitely is fine for now. This should probably be achieved with a device realize hook in the PSI base class and device_class_set_parent_realize() in the children classes. Signed-off-by: Greg Kurz Signed-off-by: C=C3=A9dric Le Goater --- hw/ppc/pnv_psi.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c index cf21e42d93b7..ce7717ccb151 100644 --- a/hw/ppc/pnv_psi.c +++ b/hw/ppc/pnv_psi.c @@ -471,6 +471,16 @@ static void pnv_psi_reset_handler(void *dev) dc->reset(DEVICE(dev)); } =20 +static void pnv_psi_realize(DeviceState *dev, Error **errp) +{ + PnvPsi *psi =3D PNV_PSI(dev); + + /* Default BAR for MMIO region */ + pnv_psi_set_bar(psi, psi->bar | PSIHB_BAR_EN); + + qemu_register_reset(pnv_psi_reset_handler, dev); +} + static void pnv_psi_power8_instance_init(Object *obj) { Pnv8Psi *psi8 =3D PNV8_PSI(obj); @@ -523,9 +533,6 @@ static void pnv_psi_power8_realize(DeviceState *dev, Er= ror **errp) memory_region_init_io(&psi->regs_mr, OBJECT(dev), &psi_mmio_ops, psi, "psihb", PNV_PSIHB_SIZE); =20 - /* Default BAR for MMIO region */ - pnv_psi_set_bar(psi, psi->bar | PSIHB_BAR_EN); - /* Default sources in XIVR */ for (i =3D 0; i < PSI_NUM_INTERRUPTS; i++) { uint8_t xivr =3D irq_to_xivr[i]; @@ -533,7 +540,7 @@ static void pnv_psi_power8_realize(DeviceState *dev, Er= ror **errp) ((uint64_t) i << PSIHB_XIVR_SRC_SH); } =20 - qemu_register_reset(pnv_psi_reset_handler, dev); + pnv_psi_realize(dev, errp); } =20 static int pnv_psi_dt_xscom(PnvXScomInterface *dev, void *fdt, int xscom_o= ffset) @@ -868,9 +875,7 @@ static void pnv_psi_power9_realize(DeviceState *dev, Er= ror **errp) memory_region_init_io(&psi->regs_mr, OBJECT(dev), &pnv_psi_p9_mmio_ops= , psi, "psihb", PNV9_PSIHB_SIZE); =20 - pnv_psi_set_bar(psi, psi->bar | PSIHB_BAR_EN); - - qemu_register_reset(pnv_psi_reset_handler, dev); + pnv_psi_realize(dev, errp); } =20 static void pnv_psi_power9_class_init(ObjectClass *klass, void *data) --=20 2.21.1