From nobody Sat May 4 03:35:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.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 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1501475331268186.76409006697577; Sun, 30 Jul 2017 21:28:51 -0700 (PDT) Received: from localhost ([::1]:57342 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dc2Jp-0006Uo-LX for importer@patchew.org; Mon, 31 Jul 2017 00:28:37 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56442) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dc2Ia-0005uG-2g for qemu-devel@nongnu.org; Mon, 31 Jul 2017 00:27:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dc2IZ-0003VF-7T for qemu-devel@nongnu.org; Mon, 31 Jul 2017 00:27:20 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:47035) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dc2IY-0003Um-CL; Mon, 31 Jul 2017 00:27:19 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3xLRHj3l23z9tW3; Mon, 31 Jul 2017 14:27:13 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1501475233; bh=sorDkbS/1jhf74Wz6ZNdajN2tA+gqas0+GyL1eWp6tM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TcAGd6i717h/9CkWfUNGFfQQUiZTVa+lJxlcV4mzipjfIm0PV8Wi3X7cjY3TOORQW mh7aHnlBmYpiqQX0VtfREy1Jd0kQ3eujASAnZlgdEZbeoxoIq6oVyzIG+ynaNRkUEd GEFucv0jrfPNFntTuIk/qyvi30jrKA49q4mOEQl0= From: David Gibson To: peter.maydell@linaro.org Date: Mon, 31 Jul 2017 14:27:09 +1000 Message-Id: <20170731042710.19924-2-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170731042710.19924-1-david@gibson.dropbear.id.au> References: <20170731042710.19924-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 1/2] spapr_drc: fix realize and unrealize X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, David Gibson , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, groug@kaod.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Greg Kurz If object_property_add_alias() returns an error in realize(), we should propagate it to the caller and certainly not unref the DRC. Same thing goes for unrealize(). Since object_property_del() is the last call, we can even get rid of the intermediate Error *. And finally, unrealize() should undo all registrations performed by realize(). Signed-off-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_drc.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 15bae5c216..47d94e782a 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -506,11 +506,11 @@ static void realize(DeviceState *d, Error **errp) trace_spapr_drc_realize_child(spapr_drc_index(drc), child_name); object_property_add_alias(root_container, link_name, drc->owner, child_name, &err); + g_free(child_name); if (err) { - error_report_err(err); - object_unref(OBJECT(drc)); + error_propagate(errp, err); + return; } - g_free(child_name); vmstate_register(DEVICE(drc), spapr_drc_index(drc), &vmstate_spapr_drc, drc); qemu_register_reset(drc_reset, drc); @@ -522,16 +522,13 @@ static void unrealize(DeviceState *d, Error **errp) sPAPRDRConnector *drc =3D SPAPR_DR_CONNECTOR(d); Object *root_container; char name[256]; - Error *err =3D NULL; =20 trace_spapr_drc_unrealize(spapr_drc_index(drc)); + qemu_unregister_reset(drc_reset, drc); + vmstate_unregister(DEVICE(drc), &vmstate_spapr_drc, drc); root_container =3D container_get(object_get_root(), DRC_CONTAINER_PATH= ); snprintf(name, sizeof(name), "%x", spapr_drc_index(drc)); - object_property_del(root_container, name, &err); - if (err) { - error_report_err(err); - object_unref(OBJECT(drc)); - } + object_property_del(root_container, name, errp); } =20 sPAPRDRConnector *spapr_dr_connector_new(Object *owner, const char *type, --=20 2.13.3 From nobody Sat May 4 03:35:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.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 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1501475330798499.39126674536396; Sun, 30 Jul 2017 21:28:50 -0700 (PDT) Received: from localhost ([::1]:57341 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dc2Jo-0006Ty-7l for importer@patchew.org; Mon, 31 Jul 2017 00:28:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56443) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dc2Ia-0005uH-2i for qemu-devel@nongnu.org; Mon, 31 Jul 2017 00:27:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dc2IZ-0003VA-6i for qemu-devel@nongnu.org; Mon, 31 Jul 2017 00:27:20 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:58229) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dc2IY-0003Un-CQ; Mon, 31 Jul 2017 00:27:19 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3xLRHj34yZz9t1n; Mon, 31 Jul 2017 14:27:13 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1501475233; bh=1nGD0CEKEbCCj4m7k34Q+oDdBr3XSG0vF2KyC09E2go=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o6UhSpE6aQKwUec6fYw3Yga4IhDUheLsXZshznZID1ZVU1V/+9OUatRGRmW3Zrx/B CY8SWTUidkV1+xKWgWzW8t7VtJR3tvaiDNbhhAD1/UvYUurfgeqdLZrpm06lTi8h0S pgCi/cXZxD5SbZf3FlpqBXolrfUCYeWjnh1YMOXc= From: David Gibson To: peter.maydell@linaro.org Date: Mon, 31 Jul 2017 14:27:10 +1000 Message-Id: <20170731042710.19924-3-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170731042710.19924-1-david@gibson.dropbear.id.au> References: <20170731042710.19924-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 2/2] Revert "spapr: populate device tree depending on XIVE_EXPLOIT option" X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, David Gibson , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, groug@kaod.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This reverts commit b87680427e8a3ff682f66514e99a8344e7437247. I thought this was a harmless preliminary for XIVE enablement patches we expect later on. However, due to some subtle interactions between qemu and SLOF (guest firmware) this breaks some things. Revert it for now, we'll work out how to fix it when the rest of the XIVE patches are ready. Signed-off-by: David Gibson --- hw/ppc/spapr.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 2a3e53d5d5..f7a19720dc 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -776,11 +776,6 @@ static int spapr_dt_cas_updates(sPAPRMachineState *spa= pr, void *fdt, } } =20 - /* /interrupt controller */ - if (!spapr_ovec_test(ov5_updates, OV5_XIVE_EXPLOIT)) { - spapr_dt_xics(xics_max_server_number(), fdt, PHANDLE_XICP); - } - offset =3D fdt_path_offset(fdt, "/chosen"); if (offset < 0) { offset =3D fdt_add_subnode(fdt, 0, "chosen"); @@ -804,7 +799,7 @@ int spapr_h_cas_compose_response(sPAPRMachineState *spa= pr, =20 size -=3D sizeof(hdr); =20 - /* Create skeleton */ + /* Create sceleton */ fdt_skel =3D g_malloc0(size); _FDT((fdt_create(fdt_skel, size))); _FDT((fdt_begin_node(fdt_skel, ""))); @@ -1077,6 +1072,9 @@ static void *spapr_build_fdt(sPAPRMachineState *spapr, _FDT(fdt_setprop_cell(fdt, 0, "#address-cells", 2)); _FDT(fdt_setprop_cell(fdt, 0, "#size-cells", 2)); =20 + /* /interrupt controller */ + spapr_dt_xics(xics_max_server_number(), fdt, PHANDLE_XICP); + ret =3D spapr_populate_memory(spapr, fdt); if (ret < 0) { error_report("couldn't setup memory nodes in fdt"); --=20 2.13.3