From nobody Sat Nov 15 01:20:30 2025 Delivered-To: importer@patchew.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; dmarc=fail(p=reject dis=none) header.from=rsg.ci.i.u-tokyo.ac.jp Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1758116880833820.6147356481721; Wed, 17 Sep 2025 06:48:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uyrk5-00084E-5N; Wed, 17 Sep 2025 08:58:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uyrk1-0007za-OH; Wed, 17 Sep 2025 08:58:33 -0400 Received: from www3579.sakura.ne.jp ([49.212.243.89]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uyrjx-00052E-VC; Wed, 17 Sep 2025 08:58:33 -0400 Received: from h205.csg.ci.i.u-tokyo.ac.jp (h205.csg.ci.i.u-tokyo.ac.jp [133.11.54.205]) (authenticated bits=0) by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 58HCuN6l008967 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 17 Sep 2025 21:56:37 +0900 (JST) (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp) DKIM-Signature: a=rsa-sha256; bh=I0NMvF5OGZVy1ri6cDaaDK+4nakFScwWAWwMOrizyQw=; c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp; h=From:Date:Subject:Message-Id:To; s=rs20250326; t=1758113797; v=1; b=bberKOrO6J7tY0L7zJPCCBce2lzuLyNtHl2vnIJUXIZZMwbfrJwuttLnlc9sonPs 14JtvF6GMhefXFETjBqtOUjw14A2IcAg4+INF921qr21btTZ10oeoS6eqXhEYTpc d2+qDuD7DVPiUYKJcmYxuegzPPIPRVujjO8SrPvhayhKHi+7JNbbJ8+F88JzRNdg tZdN/NDdvDo+XlEfojYYM41UVanxTLjA+D/SRzZw2zeqJAQ8nsVebcxYrGGVVMh0 7LIYrh0+uNGOWQXR1XPZA8cO1V4zTuMbGIifi4NtgOtyxInjjcjlxVpfI1G5DRRW TFV4JVQb0q8Jp6z3Ra2GfQ== From: Akihiko Odaki Date: Wed, 17 Sep 2025 21:56:19 +0900 Subject: [PATCH 07/35] hw/dma: QOM-ify AddressSpace MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250917-qom-v1-7-7262db7b0a84@rsg.ci.i.u-tokyo.ac.jp> References: <20250917-qom-v1-0-7262db7b0a84@rsg.ci.i.u-tokyo.ac.jp> In-Reply-To: <20250917-qom-v1-0-7262db7b0a84@rsg.ci.i.u-tokyo.ac.jp> To: qemu-devel@nongnu.org Cc: Richard Henderson , Peter Maydell , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Steven Lee , Troy Lee , Jamin Lin , Andrew Jeffery , Joel Stanley , Eric Auger , Helge Deller , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , =?utf-8?q?Herv=C3=A9_Poussineau?= , Aleksandar Rikalo , "Edgar E. Iglesias" , Alistair Francis , Ninad Palsule , Paolo Bonzini , Eduardo Habkost , "Michael S. Tsirkin" , Marcel Apfelbaum , Jason Wang , Yi Liu , =?utf-8?q?Cl=C3=A9ment_Mathieu--Drif?= , Nicholas Piggin , Aditya Gupta , Gautam Menghani , Song Gao , Bibo Mao , Jiaxun Yang , Jonathan Cameron , Fan Ni , David Hildenbrand , Igor Mammedov , Xiao Guangrong , Beniamino Galvani , Strahinja Jankovic , Subbaraya Sundeep , Jan Kiszka , Laurent Vivier , Andrey Smirnov , Aurelien Jarno , BALATON Zoltan , Bernhard Beschow , Harsh Prateek Bora , Elena Ufimtseva , Jagannathan Raman , Palmer Dabbelt , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Matthew Rosato , Eric Farman , Thomas Huth , Halil Pasic , Christian Borntraeger , Ilya Leoshkevich , Fam Zheng , Bin Meng , Mark Cave-Ayland , Artyom Tarasenko , Peter Xu , Marcelo Tosatti , Max Filippov , qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org, qemu-s390x@nongnu.org, qemu-block@nongnu.org, kvm@vger.kernel.org, Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Stefano Garzarella , Alistair Francis , Akihiko Odaki X-Mailer: b4 0.15-dev-179e8 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; Received-SPF: pass client-ip=49.212.243.89; envelope-from=odaki@rsg.ci.i.u-tokyo.ac.jp; helo=www3579.sakura.ne.jp X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1758116883653116600 Make AddressSpaces QOM objects to ensure that they are destroyed when their owners are finalized and also to get a unique path for debugging output. The name arguments were used to distinguish AddresSpaces in debugging output, but they will represent property names after QOM-ification and debugging output will show QOM paths. So change them to make them more concise and also avoid conflicts with other properties. Signed-off-by: Akihiko Odaki --- hw/dma/bcm2835_dma.c | 2 +- hw/dma/pl080.c | 3 +-- hw/dma/pl330.c | 3 +-- hw/dma/rc4030.c | 5 ++--- hw/dma/xilinx_axidma.c | 4 ++-- hw/dma/xlnx-zdma.c | 2 +- hw/dma/xlnx_csu_dma.c | 2 +- 7 files changed, 9 insertions(+), 12 deletions(-) diff --git a/hw/dma/bcm2835_dma.c b/hw/dma/bcm2835_dma.c index ebef56d8d613..8ff266c48882 100644 --- a/hw/dma/bcm2835_dma.c +++ b/hw/dma/bcm2835_dma.c @@ -380,7 +380,7 @@ static void bcm2835_dma_realize(DeviceState *dev, Error= **errp) =20 obj =3D object_property_get_link(OBJECT(dev), "dma-mr", &error_abort); s->dma_mr =3D MEMORY_REGION(obj); - address_space_init(&s->dma_as, NULL, s->dma_mr, TYPE_BCM2835_DMA "-mem= ory"); + address_space_init(&s->dma_as, OBJECT(s), s->dma_mr, "as"); =20 bcm2835_dma_reset(dev); } diff --git a/hw/dma/pl080.c b/hw/dma/pl080.c index cf02a484d6a6..1b6e9f741330 100644 --- a/hw/dma/pl080.c +++ b/hw/dma/pl080.c @@ -398,8 +398,7 @@ static void pl080_realize(DeviceState *dev, Error **err= p) return; } =20 - address_space_init(&s->downstream_as, NULL, s->downstream, - "pl080-downstream"); + address_space_init(&s->downstream_as, OBJECT(s), s->downstream, "as"); } =20 static void pl081_init(Object *obj) diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c index 4733799f4045..e9bf8f86ee5a 100644 --- a/hw/dma/pl330.c +++ b/hw/dma/pl330.c @@ -1569,8 +1569,7 @@ static void pl330_realize(DeviceState *dev, Error **e= rrp) s->mem_as =3D &address_space_memory; } else { s->mem_as =3D g_new0(AddressSpace, 1); - address_space_init(s->mem_as, NULL, s->mem_mr, - memory_region_name(s->mem_mr)); + address_space_init(s->mem_as, OBJECT(s), s->mem_mr, "as"); } =20 s->timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, pl330_exec_cycle_timer, = s); diff --git a/hw/dma/rc4030.c b/hw/dma/rc4030.c index cf76f90f4d3b..65f2c7f1bd19 100644 --- a/hw/dma/rc4030.c +++ b/hw/dma/rc4030.c @@ -688,8 +688,7 @@ static void rc4030_realize(DeviceState *dev, Error **er= rp) memory_region_init_iommu(&s->dma_mr, sizeof(s->dma_mr), TYPE_RC4030_IOMMU_MEMORY_REGION, o, "rc4030.dma", 4 * GiB); - address_space_init(&s->dma_as, NULL, MEMORY_REGION(&s->dma_mr), - "rc4030-dma"); + address_space_init(&s->dma_as, o, MEMORY_REGION(&s->dma_mr), "as"); } =20 static void rc4030_unrealize(DeviceState *dev) @@ -698,7 +697,7 @@ static void rc4030_unrealize(DeviceState *dev) =20 timer_free(s->periodic_timer); =20 - address_space_destroy(&s->dma_as); + object_unparent(OBJECT(&s->dma_as)); object_unparent(OBJECT(&s->dma_mr)); } =20 diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c index 0f340abc2c6f..5f85b686fd18 100644 --- a/hw/dma/xilinx_axidma.c +++ b/hw/dma/xilinx_axidma.c @@ -588,8 +588,8 @@ static void xilinx_axidma_realize(DeviceState *dev, Err= or **errp) ptimer_transaction_commit(st->ptimer); } =20 - address_space_init(&s->as, NULL, - s->dma_mr ? s->dma_mr : get_system_memory(), "dma"); + address_space_init(&s->as, OBJECT(s), + s->dma_mr ? s->dma_mr : get_system_memory(), "as"); } =20 static void xilinx_axidma_init(Object *obj) diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c index 9b9ccd1e3c08..ad93bab5d4fa 100644 --- a/hw/dma/xlnx-zdma.c +++ b/hw/dma/xlnx-zdma.c @@ -769,7 +769,7 @@ static void zdma_realize(DeviceState *dev, Error **errp) error_setg(errp, TYPE_XLNX_ZDMA " 'dma' link not set"); return; } - address_space_init(&s->dma_as, NULL, s->dma_mr, "zdma-dma"); + address_space_init(&s->dma_as, OBJECT(s), s->dma_mr, "as"); =20 for (i =3D 0; i < ARRAY_SIZE(zdma_regs_info); ++i) { RegisterInfo *r =3D &s->regs_info[zdma_regs_info[i].addr / 4]; diff --git a/hw/dma/xlnx_csu_dma.c b/hw/dma/xlnx_csu_dma.c index 8b88392bb92b..8a0ec5bc5b94 100644 --- a/hw/dma/xlnx_csu_dma.c +++ b/hw/dma/xlnx_csu_dma.c @@ -653,7 +653,7 @@ static void xlnx_csu_dma_realize(DeviceState *dev, Erro= r **errp) error_setg(errp, TYPE_XLNX_CSU_DMA " 'dma' link not set"); return; } - address_space_init(&s->dma_as, NULL, s->dma_mr, "csu-dma"); + address_space_init(&s->dma_as, OBJECT(s), s->dma_mr, "as"); =20 reg_array =3D register_init_block32(dev, xlnx_csu_dma_regs_info[!!s->is_dst], --=20 2.51.0