From nobody Sun Feb 8 20:23:08 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1767913485; cv=none; d=zohomail.com; s=zohoarc; b=DISsS27hmO1M/zmVnfXp44bHhzAuEZJeCNoM79J8D4vK+BPzjNDKlNuzkaG4T71AzFAAn48SuBKZVcoD1ZcihBN2njeFl445idYkY5cGjXilefOmwt8wemULyXCR6FgOmsuXqnFPiZITEgJTd3Q1D3NT4mLwz2keb1G58Qfqp84= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767913485; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=28C1ctKTrEVdRzLWw7bIF8SA92UWDtU9p/oPvVwMmW8=; b=FvBO0vrtOs5zzakvbt0bTSTPS7km8cUkYlKVmBrABkeIHus7ZfP3qRPoYJPFdGXVoUZ/HcGrZ3z3qzjRzfGjY9kNSYTiZ/eezH2q/y+C3E1DMQWW8KGh2uSqNOmhAebR8GOwg5ETG958U1+qR/knFws2iILOJx61N4yDAJQJ2go= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767913485704141.92360549377145; Thu, 8 Jan 2026 15:04:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdz3L-00079e-Np; Thu, 08 Jan 2026 18:04:27 -0500 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 1vdz3K-00078x-Dw for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:26 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdz3D-0003Tr-Fx for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:21 -0500 Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-220-F0UbDV9oPJ-FDVfodI8gMw-1; Thu, 08 Jan 2026 18:04:16 -0500 Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8b2217a9c60so751741485a.3 for ; Thu, 08 Jan 2026 15:04:16 -0800 (PST) Received: from csomani-thinkpadp1gen7.rmtusca.csb ([47.153.136.179]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8c37f51b787sm680000685a.29.2026.01.08.15.04.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 15:04:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767913458; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=28C1ctKTrEVdRzLWw7bIF8SA92UWDtU9p/oPvVwMmW8=; b=TYtLg3iJpVOnZsbUJPpN9bLsDvW1oK/b+xPU03cjDSr5i0lvJdW06aWz4f89N+C3UfOxoD E5RFVYShnfH4NW5SIb5FzplpSGPNhrpIS8bsKhpT7B+wymEJQZsCupRSG5jWX/tpeI7uHS EkuUkYREd5wAO7uLa3qgn9Tsf1JKdgE= X-MC-Unique: F0UbDV9oPJ-FDVfodI8gMw-1 X-Mimecast-MFC-AGG-ID: F0UbDV9oPJ-FDVfodI8gMw_1767913456 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1767913456; x=1768518256; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=28C1ctKTrEVdRzLWw7bIF8SA92UWDtU9p/oPvVwMmW8=; b=XTEUlzajpL+VkCnfvDzGXy4TcSaE9zNxT8sKBZTs5o/I3OPL03NNRc1VRGeVxSkTnI 966pMaiH76UW4osLqcossO6N2Dsw0kPOykPmyYiwzE898qOTNvIi0QuJG2idBQ28V8/J IktfwQ/JrCbqYqfGhmccCqsFXFbm2Ln+ITrh0C0QaXDMJDjmNdZ8QijX1N0GtjmYH9Gx v7uQg1+4PQwXSPnqLrSjIkCIOCstELpqSrTdMhAyUUm0kExWyicIM4T8KNRsrrSMoSN3 kWb65GbcEIam2qZz6N3alEVhyTsXgk5AnaqxS66I69A3hjK8LE9MuuM2kwOVZFkLw1U+ lUxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767913456; x=1768518256; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=28C1ctKTrEVdRzLWw7bIF8SA92UWDtU9p/oPvVwMmW8=; b=Ya0Gmc3jUuPU3YkTD0JYseR2uTpCLGM5u40xa/1vHm4Rw5Dbbp2Nc3moDZuwXNeOD2 Vl0QbNLlS4ZuUM8ihj5jLFWwwe4MweEKyo0bmpfOL6KlxrefR3XukOntpVs556G6s5E9 OVfi1vwlEdpXdXTnlG2M8ZzagrMk6IAs9qeHAuWCm87X/BMxHZUC+bEGme2nJLBRdjeP nWkW8E8WjcIwNsZMA5kSKQfJnT8EAKT91ysK8AkS4r4n7p7sWoQDR01dXXaG3vist0l8 PxnovSDl/V8XWSJkY/aXIeb2qY+yWmluNb91Y6+fu4qhNjIkE0CNG3JPUyyA1svoJwP0 bUKQ== X-Gm-Message-State: AOJu0YztftyUlG2iAhZHaQyhwAnD7nBdDQuq/5HaQ/6oR1QM7Xf4AHwy u1WI6M4gaIKjwEHQbnth0o1+cnKkPd8mLtC0mRk8rpknyerWTBlwcULtzP6Vgzf6Z1sjerbf8IC kjUYvSCzt94LSPQ/LCL1880ha5iasVdzB3lkpSpmTj5uls1QPlp1VGQs00ArWRgCSfcCD3OgZOf 8YZyxFvO6ygn2V5ca/t02tHmJkvouyVts/mHtYKP0= X-Gm-Gg: AY/fxX4p826aS8Wu9re4xcEn6NHnx0hKYnNe/iPqJHkfYnT1aKu6bVOn6J10wX/nlJU eeey6obP8i7wAtLvrmtIVib5kIWB8Z5IttaVCYgN3NIt0FHGS/YSXhvW08fTrK7aJIOUfKWagfM 7ZsCq/TbYsbQ6ZAwuDUKPgO0ALZy2Cphexo0Wv/fdQEfGBNYjmiF30zLWt3Ajv6FrK+T5y57LWX p3cTrNTfTp+4YHZzHrRQ6KgaqRr5ge4M0ADC1VmHp6PWCK/Vj7QQ/LyIjhrfEC+AXYx3wVSrJG1 EKbwFD/Y6rTyPQtinOCj56VeCro0qZfxyMAN59rZmmuciJuMDH5EG+tmSVvfhGRcPHUh03bT6xg OVn3PzkHKkPUzcExmnK1eUV3EmuO/sKPpZAjtuXc= X-Received: by 2002:a05:620a:4089:b0:8b2:e15c:be60 with SMTP id af79cd13be357-8c389429edfmr1151530585a.88.1767913455852; Thu, 08 Jan 2026 15:04:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IFEzpr1GQrEXWuyPIlt8GSQ6kEPhcXsingypDfUp1NZHGB0W62CWYumbHQlhlvJEYDaJL12rg== X-Received: by 2002:a05:620a:4089:b0:8b2:e15c:be60 with SMTP id af79cd13be357-8c389429edfmr1151524285a.88.1767913455391; Thu, 08 Jan 2026 15:04:15 -0800 (PST) From: Chandan Somani To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, marcandre.lureau@gmail.com, Chandan Somani , Kevin Wolf , Hanna Reitz , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Peter Maydell , Yoshinori Sato , Jiri Pirko , Jason Wang , Alistair Francis , "Edgar E. Iglesias" , "Michael S. Tsirkin" , Eric Auger , qemu-block@nongnu.org (open list:Block layer core), qemu-arm@nongnu.org (open list:Stellaris) Subject: [PATCH v2 1/5] qdev: Free property array on release Date: Thu, 8 Jan 2026 15:03:07 -0800 Message-ID: <20260108230311.584141-2-csomani@redhat.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20260108230311.584141-1-csomani@redhat.com> References: <20260108230311.584141-1-csomani@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 (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=170.10.133.124; envelope-from=csomani@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1767913489617158500 Content-Type: text/plain; charset="utf-8" Before this patch, users of the property array would free the array themselves in their cleanup functions. This causes inconsistencies where some users leak the array and some free them. This patch makes it so that the property array's release function frees the property array (instead of just its elements). It fixes any leaks and requires less code. DEFINE_PROP_ARRAY leakers that are fixed in this patch: ebpf-rss_fds in hw/net/virtio-net.c rnmi_irqvec, rnmi_excpvec in hw/riscv/riscv_hart.c common.display_modes in hw/display/apple-gfx-mmio.m common.display_modes in hw/display/apple-gfx-pci.m Signed-off-by: Chandan Somani Reviewed-by: Stefan Hajnoczi --- block/accounting.c | 1 - hw/core/qdev-properties.c | 21 ++++++++++----------- hw/input/stellaris_gamepad.c | 8 -------- hw/intc/arm_gicv3_common.c | 8 -------- hw/intc/rx_icu.c | 8 -------- hw/misc/arm_sysctl.c | 2 -- hw/misc/mps2-scc.c | 8 -------- hw/net/rocker/rocker.c | 1 - hw/nvram/xlnx-efuse.c | 8 -------- hw/nvram/xlnx-versal-efuse-ctrl.c | 8 -------- hw/virtio/virtio-iommu-pci.c | 8 -------- 11 files changed, 10 insertions(+), 71 deletions(-) diff --git a/block/accounting.c b/block/accounting.c index 0933c61f3a..5cf51f029b 100644 --- a/block/accounting.c +++ b/block/accounting.c @@ -73,7 +73,6 @@ bool block_acct_setup(BlockAcctStats *stats, enum OnOffAu= to account_invalid, } block_acct_add_interval(stats, stats_intervals[i]); } - g_free(stats_intervals); } return true; } diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 05489c8fbb..c8379fda9d 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -673,10 +673,8 @@ static Property array_elem_prop(Object *obj, const Pro= perty *parent_prop, =20 /* * Object property release callback for array properties: We call the - * underlying element's property release hook for each element. - * - * Note that it is the responsibility of the individual device's deinit - * to free the array proper. + * underlying element's property release hook for each element and free the + * property array. */ static void release_prop_array(Object *obj, const char *name, void *opaque) { @@ -686,15 +684,16 @@ static void release_prop_array(Object *obj, const cha= r *name, void *opaque) char *elem =3D *arrayptr; int i; =20 - if (!prop->arrayinfo->release) { - return; + if (prop->arrayinfo->release) { + for (i =3D 0; i < *alenptr; i++) { + Property elem_prop =3D array_elem_prop(obj, prop, name, elem); + prop->arrayinfo->release(obj, NULL, &elem_prop); + elem +=3D prop->arrayfieldsize; + } } =20 - for (i =3D 0; i < *alenptr; i++) { - Property elem_prop =3D array_elem_prop(obj, prop, name, elem); - prop->arrayinfo->release(obj, NULL, &elem_prop); - elem +=3D prop->arrayfieldsize; - } + g_clear_pointer(arrayptr, g_free); + *alenptr =3D 0; } =20 /* diff --git a/hw/input/stellaris_gamepad.c b/hw/input/stellaris_gamepad.c index f64f5ea9ce..42d43f9af5 100644 --- a/hw/input/stellaris_gamepad.c +++ b/hw/input/stellaris_gamepad.c @@ -63,13 +63,6 @@ static void stellaris_gamepad_realize(DeviceState *dev, = Error **errp) qemu_input_handler_register(dev, &stellaris_gamepad_handler); } =20 -static void stellaris_gamepad_finalize(Object *obj) -{ - StellarisGamepad *s =3D STELLARIS_GAMEPAD(obj); - - g_free(s->keycodes); -} - static void stellaris_gamepad_reset_enter(Object *obj, ResetType type) { StellarisGamepad *s =3D STELLARIS_GAMEPAD(obj); @@ -98,7 +91,6 @@ static const TypeInfo stellaris_gamepad_info[] =3D { .name =3D TYPE_STELLARIS_GAMEPAD, .parent =3D TYPE_SYS_BUS_DEVICE, .instance_size =3D sizeof(StellarisGamepad), - .instance_finalize =3D stellaris_gamepad_finalize, .class_init =3D stellaris_gamepad_class_init, }, }; diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c index 0a2e5a3e2f..e5f3c3c447 100644 --- a/hw/intc/arm_gicv3_common.c +++ b/hw/intc/arm_gicv3_common.c @@ -488,13 +488,6 @@ static void arm_gicv3_common_realize(DeviceState *dev,= Error **errp) s->itslist =3D g_ptr_array_new(); } =20 -static void arm_gicv3_finalize(Object *obj) -{ - GICv3State *s =3D ARM_GICV3_COMMON(obj); - - g_free(s->redist_region_count); -} - static void arm_gicv3_common_reset_hold(Object *obj, ResetType type) { GICv3State *s =3D ARM_GICV3_COMMON(obj); @@ -644,7 +637,6 @@ static const TypeInfo arm_gicv3_common_type =3D { .instance_size =3D sizeof(GICv3State), .class_size =3D sizeof(ARMGICv3CommonClass), .class_init =3D arm_gicv3_common_class_init, - .instance_finalize =3D arm_gicv3_finalize, .abstract =3D true, .interfaces =3D (const InterfaceInfo[]) { { TYPE_ARM_LINUX_BOOT_IF }, diff --git a/hw/intc/rx_icu.c b/hw/intc/rx_icu.c index 87cdc6cbde..992b069ae2 100644 --- a/hw/intc/rx_icu.c +++ b/hw/intc/rx_icu.c @@ -334,13 +334,6 @@ static void rxicu_init(Object *obj) sysbus_init_irq(d, &icu->_swi); } =20 -static void rxicu_fini(Object *obj) -{ - RXICUState *icu =3D RX_ICU(obj); - g_free(icu->map); - g_free(icu->init_sense); -} - static const VMStateDescription vmstate_rxicu =3D { .name =3D "rx-icu", .version_id =3D 1, @@ -382,7 +375,6 @@ static const TypeInfo rxicu_info =3D { .parent =3D TYPE_SYS_BUS_DEVICE, .instance_size =3D sizeof(RXICUState), .instance_init =3D rxicu_init, - .instance_finalize =3D rxicu_fini, .class_init =3D rxicu_class_init, }; =20 diff --git a/hw/misc/arm_sysctl.c b/hw/misc/arm_sysctl.c index 2a317ac7f5..7b320f89c1 100644 --- a/hw/misc/arm_sysctl.c +++ b/hw/misc/arm_sysctl.c @@ -618,9 +618,7 @@ static void arm_sysctl_finalize(Object *obj) { arm_sysctl_state *s =3D ARM_SYSCTL(obj); =20 - g_free(s->db_voltage); g_free(s->db_clock); - g_free(s->db_clock_reset); } =20 static const Property arm_sysctl_properties[] =3D { diff --git a/hw/misc/mps2-scc.c b/hw/misc/mps2-scc.c index 350bba3dab..7877b31479 100644 --- a/hw/misc/mps2-scc.c +++ b/hw/misc/mps2-scc.c @@ -405,13 +405,6 @@ static void mps2_scc_realize(DeviceState *dev, Error *= *errp) s->oscclk =3D g_new0(uint32_t, s->num_oscclk); } =20 -static void mps2_scc_finalize(Object *obj) -{ - MPS2SCC *s =3D MPS2_SCC(obj); - - g_free(s->oscclk_reset); -} - static bool cfg7_needed(void *opaque) { MPS2SCC *s =3D opaque; @@ -489,7 +482,6 @@ static const TypeInfo mps2_scc_info =3D { .parent =3D TYPE_SYS_BUS_DEVICE, .instance_size =3D sizeof(MPS2SCC), .instance_init =3D mps2_scc_init, - .instance_finalize =3D mps2_scc_finalize, .class_init =3D mps2_scc_class_init, }; =20 diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index 3eb7b44511..4a7056bd45 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -1429,7 +1429,6 @@ static void pci_rocker_uninit(PCIDevice *dev) world_free(r->worlds[i]); } } - g_free(r->fp_ports_peers); } =20 static void rocker_reset(DeviceState *dev) diff --git a/hw/nvram/xlnx-efuse.c b/hw/nvram/xlnx-efuse.c index facbef3fc4..5531ffe550 100644 --- a/hw/nvram/xlnx-efuse.c +++ b/hw/nvram/xlnx-efuse.c @@ -224,13 +224,6 @@ static void efuse_realize(DeviceState *dev, Error **er= rp) } } =20 -static void efuse_finalize(Object *obj) -{ - XlnxEFuse *s =3D XLNX_EFUSE(obj); - - g_free(s->ro_bits); -} - static void efuse_prop_set_drive(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -288,7 +281,6 @@ static const TypeInfo efuse_info =3D { .name =3D TYPE_XLNX_EFUSE, .parent =3D TYPE_DEVICE, .instance_size =3D sizeof(XlnxEFuse), - .instance_finalize =3D efuse_finalize, .class_init =3D efuse_class_init, }; =20 diff --git a/hw/nvram/xlnx-versal-efuse-ctrl.c b/hw/nvram/xlnx-versal-efuse= -ctrl.c index b7dc0e49e5..69acdfa304 100644 --- a/hw/nvram/xlnx-versal-efuse-ctrl.c +++ b/hw/nvram/xlnx-versal-efuse-ctrl.c @@ -724,13 +724,6 @@ static void efuse_ctrl_init(Object *obj) sysbus_init_irq(sbd, &s->irq_efuse_imr); } =20 -static void efuse_ctrl_finalize(Object *obj) -{ - XlnxVersalEFuseCtrl *s =3D XLNX_VERSAL_EFUSE_CTRL(obj); - - g_free(s->extra_pg0_lock_spec); -} - static const VMStateDescription vmstate_efuse_ctrl =3D { .name =3D TYPE_XLNX_VERSAL_EFUSE_CTRL, .version_id =3D 1, @@ -767,7 +760,6 @@ static const TypeInfo efuse_ctrl_info =3D { .instance_size =3D sizeof(XlnxVersalEFuseCtrl), .class_init =3D efuse_ctrl_class_init, .instance_init =3D efuse_ctrl_init, - .instance_finalize =3D efuse_ctrl_finalize, }; =20 static void efuse_ctrl_register_types(void) diff --git a/hw/virtio/virtio-iommu-pci.c b/hw/virtio/virtio-iommu-pci.c index f5f6ce7359..7b5ffddc1e 100644 --- a/hw/virtio/virtio-iommu-pci.c +++ b/hw/virtio/virtio-iommu-pci.c @@ -94,18 +94,10 @@ static void virtio_iommu_pci_instance_init(Object *obj) TYPE_VIRTIO_IOMMU); } =20 -static void virtio_iommu_pci_instance_finalize(Object *obj) -{ - VirtIOIOMMUPCI *dev =3D VIRTIO_IOMMU_PCI(obj); - - g_free(dev->vdev.prop_resv_regions); -} - static const VirtioPCIDeviceTypeInfo virtio_iommu_pci_info =3D { .generic_name =3D TYPE_VIRTIO_IOMMU_PCI, .instance_size =3D sizeof(VirtIOIOMMUPCI), .instance_init =3D virtio_iommu_pci_instance_init, - .instance_finalize =3D virtio_iommu_pci_instance_finalize, .class_init =3D virtio_iommu_pci_class_init, }; =20 --=20 2.51.1 From nobody Sun Feb 8 20:23:08 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1767913529; cv=none; d=zohomail.com; s=zohoarc; b=iYZ7mUAuQjItFpzwELDn1M/7B2HijdexAxaLq63K1N3G/1rOPL/qzZtN5m3YzH81Ym5mwMd/gqOYqnpqcJUkjBe03PAnXu0jQPTO9/DotXOJqz8TqWRrtnaVmxJkPf3ym4qGkbpNRqvUjaHVOAuNb1WOPFyC5gTemSkLuaYav1w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767913529; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ekEeGNhYf1wo4cndvv34o+xcugaOgiL9C4rrO036rJ0=; b=ARLCptUQsOIIw9VDNaJ05QrC4hAqXFPVgPueSsuXujtK3UREtCTFB2SCGCf2NJqU9UDIyH8NhvrUqM8KiL/auRS1rEF7anzX+cEcck2B+4wzMuobKrUNdYgiWv0unw0wbNCv8xjKxEfVZzhXIZkH3R9hcwgcjZilstDcm1OTzxk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767913529965289.7416940604418; Thu, 8 Jan 2026 15:05:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdz3N-0007Bq-BR; Thu, 08 Jan 2026 18:04:29 -0500 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 1vdz3L-00079O-IG for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:27 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdz3K-0003Un-7l for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:27 -0500 Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-86-vyZbpPxkPfeMoMiOZYkzug-1; Thu, 08 Jan 2026 18:04:23 -0500 Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8bb0ae16a63so433169485a.3 for ; Thu, 08 Jan 2026 15:04:23 -0800 (PST) Received: from csomani-thinkpadp1gen7.rmtusca.csb ([47.153.136.179]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8c37f51b787sm680000685a.29.2026.01.08.15.04.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 15:04:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767913464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ekEeGNhYf1wo4cndvv34o+xcugaOgiL9C4rrO036rJ0=; b=Jfeb6XpgOjO+JATfcw+0wtWJqkozaEtcw55wpvQYrakm9eXIKkvibzHjWtgU31s6x2jqzb 2CRbChKF3MD9zdrKdFG73XIszGLwzOiS1ak5JOd04ZpshxHivWGxxdKIHhsDRaZjqT47xy z4D/hCUcvGRe3XWBfBAN+MKt5HIs1lE= X-MC-Unique: vyZbpPxkPfeMoMiOZYkzug-1 X-Mimecast-MFC-AGG-ID: vyZbpPxkPfeMoMiOZYkzug_1767913463 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1767913463; x=1768518263; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ekEeGNhYf1wo4cndvv34o+xcugaOgiL9C4rrO036rJ0=; b=Jva3wNaYXRoaa+LDvXYa/U8o2MpiEp+kZQZ5XYGO4dza5neRAzOM2NHWh/ZFdvqHun UC8N2eBvrbEGxeptJe9G+aLle6rcbQ7LjhDo+Ld7sXM9SQ9buvzkJUO35un3zFCoxxW9 KPIJGaZQxsit147dTrl8CpLHEo+h3yiCdmEZpT6kswfsRf4GgwRLdrFWBn5fPDjZSTcN QoZlegty+XGlOyeybonpdSmA81prFzQD45aaKbLKnL5Y4eyQYPnC8+ibcv85ZaZKAaHv IjVUyPXg9cRZYD436DjUo/lSn2DLpc767iZ3eBYsYj/tAzCWzBH2mfuNWEGNhRABVqpM nUyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767913463; x=1768518263; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ekEeGNhYf1wo4cndvv34o+xcugaOgiL9C4rrO036rJ0=; b=NDWk21Xf9oSxNZAuBAocZBoGdmU7Dd4pafyUuZpYJSMfKtXCjzfRnwW83qgA8czyWQ T3HVrd4dmrwfbW3x/KfvDZ0lXUEHlh/tym84No2Prqn17K+4gnAZvdwugroMN4xyCI02 O6pNdTqJgF/lsfcAoHZkFiq3AtNpOSBWlFjJq4FiH+DLruRCzkFSyyl8urPOOcjR/UUH JOas9m0nP1Bkq1sJIvmT/EN6x1/9LOWNoHcstlm1ccs+p4DY2CE2jlOO8Oz+UhXomqg0 M3maFQbkABgR+qD7h0LB/zNlBo6TCNUp+SBySQXsW14uFLx2LN+93TbCfmbWG98+pzax gWgQ== X-Gm-Message-State: AOJu0YyI1l4L/o17i99HfGE2lqZVS98qzJS5Og7v/gM9PtFZg/sUKPnz rNNmr8BbV78ZKejFCIP80wWXC8OxHGNrkxsprGRPrcgao4aZS2rVWsS5PYMAzPAhtbwnVkrb4ta fa+3JB0jHmDu4SQrrmmzKYUcCu2LA+aVzotiilUW33xVCkReHGd5+JkOyqdku317tkFqC8rMFvK 9GR6Od4vBpWIGILldYjhbdDnv19rjeHfnC6Y8f58E= X-Gm-Gg: AY/fxX6abRkTyas8YIUlTXs2eXjmhaVkIHipgw1dYN7ObRe6mhp+lG2omWM2xkrQr8d gYrn9ggaC77I52zd10jQmJYivsjrEgaVqEzYID9yxsPZxF2/c6Czzp5va9/9yZ5bdYVDhYjODDs XiOXPeWCfdRHEHi4OMa3gyAwHYGuKsLlEe1vILICYWj+udgG9jWqQZ6rsXkaZpfkgKIhvQTIW4G Ux1kNKUdrDe9L/CsB9sRmLyFMCxBmfKSsGdf5+W0sxDlPgIXNovpULF1Ir9niE37qmtPr70kYv+ p1880LxkzRtUCrVR+rMbaMW3jtk49ocTYDnItrZlOFRslCKVLZxCDRbjrDLVIh2H+OpjYfgf2Yq Ary72PwtQpW8hmiRtv8aoZiKFY4T3Di5t0Sm1Hb4= X-Received: by 2002:a05:620a:bd5:b0:8c3:650d:577e with SMTP id af79cd13be357-8c38935626bmr996316385a.4.1767913462749; Thu, 08 Jan 2026 15:04:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IGtNa9F5T/ZPQsam91EtBOSONlUmlt1eVw72/FDVleaBJ6UFyiYc3oh8d8KrXmxMjIygpTBsA== X-Received: by 2002:a05:620a:bd5:b0:8c3:650d:577e with SMTP id af79cd13be357-8c38935626bmr996311085a.4.1767913462080; Thu, 08 Jan 2026 15:04:22 -0800 (PST) From: Chandan Somani To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, marcandre.lureau@gmail.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Stefan Berger , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost Subject: [PATCH v2 2/5] qdev: make release_string() idempotent Date: Thu, 8 Jan 2026 15:03:08 -0800 Message-ID: <20260108230311.584141-3-csomani@redhat.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20260108230311.584141-1-csomani@redhat.com> References: <20260108230311.584141-1-csomani@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 (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=170.10.133.124; envelope-from=csomani@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1767913531717158500 From: Marc-Andr=C3=A9 Lureau So it can eventually be called multiple times safely. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Stefan Berger Message-Id: <20250429140306.190384-2-marcandre.lureau@redhat.com> Reviewed-by: Stefan Hajnoczi --- hw/core/qdev-properties.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index c8379fda9d..aba55c02b5 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -551,7 +551,8 @@ const PropertyInfo qdev_prop_usize =3D { static void release_string(Object *obj, const char *name, void *opaque) { const Property *prop =3D opaque; - g_free(*(char **)object_field_prop_ptr(obj, prop)); + + g_clear_pointer((char **)object_field_prop_ptr(obj, prop), g_free); } =20 static void get_string(Object *obj, Visitor *v, const char *name, --=20 2.51.1 From nobody Sun Feb 8 20:23:08 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1767913505; cv=none; d=zohomail.com; s=zohoarc; b=JOmE4eXsJAEYniTExpNrzLuU8tFuI4vUCdKjvYYi97Ly0j1Xhv5UptfBV55ONwxqKYbHFy68EDgdqWLuX+5LSs2bVvI2o70grntjKmp6nN9z6sXm4Ll0Tc2o+gLvWuNh0JqFhKsDug6RWa/3T+QOw3aDcFsBLKfbVnbslhrHFd0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767913505; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BwUB2cayiLwwDdtvJpiYXS203h3m3uyKKPss8d5TaJ4=; b=lvaiCOJwJP4VQT7z/Pb2hErIGFZdu3jfmUWO20PixmbBNJpPWXY9HGMYguOtg+Kj0oyCjOp4SdalZno8V566s7KSBCSvWfw/JHfgzwqeqSQMhOzWK120sxx38XVPFwwdbayPmmxCiflpVYLC3TMgcwpFN0SWrwjH8jXTjHpvIXs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176791350570426.166026810166954; Thu, 8 Jan 2026 15:05:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdz3R-0007EM-Tl; Thu, 08 Jan 2026 18:04:33 -0500 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 1vdz3Q-0007Cw-7U for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:32 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdz3O-0003VO-QR for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:31 -0500 Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-300-C36cBPMkMAuIpj91zKRRHw-1; Thu, 08 Jan 2026 18:04:27 -0500 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8b259f0da04so918252585a.0 for ; Thu, 08 Jan 2026 15:04:27 -0800 (PST) Received: from csomani-thinkpadp1gen7.rmtusca.csb ([47.153.136.179]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8c37f51b787sm680000685a.29.2026.01.08.15.04.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 15:04:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767913468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BwUB2cayiLwwDdtvJpiYXS203h3m3uyKKPss8d5TaJ4=; b=Qim4Z9EmplvBXdXtTvynrxyPZRs5cSw5UuuDU8+ei7MeXZlkHCaVrt+CzAg6hvqYEmgdlG +8JV9Bz6+qN+CTMgeMbSAbTFt2B/RgPg8z7hkiSFdUeNnxBDAKV2eNVVBWdTN9YioF5bhU UmalRUGSEOOaVQlUDMCd8VEZH9qgCYM= X-MC-Unique: C36cBPMkMAuIpj91zKRRHw-1 X-Mimecast-MFC-AGG-ID: C36cBPMkMAuIpj91zKRRHw_1767913467 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1767913466; x=1768518266; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BwUB2cayiLwwDdtvJpiYXS203h3m3uyKKPss8d5TaJ4=; b=LrXC3obrUMJ/L0MOimD3RMEeW2Q+w9j2G9bP580CBpvJUmg5ao1UPtJzTpeOuwnKRD e6f1ydl3+kjY88HCQkWfheFogNgQOdsy/O9BlGFHV0fm5AwvbuzhuVRecBw1em3ZLQVM RmorxBkr1+B3JMJZ1zfy89gX9QDcYURNtRJcpQN30ybyadRNcEgKLsJe61mlnzUKK0Ud HejldUdNckcXLV0i9BE+Sm+PxqkcQ8WfsAwBQjMhvSvwWhzw+DqZMtYoVKKoW0699bw3 J1Wt3leKG6/uOkbKH1ya3dF6b4N/sjxXz6PGR9mhiQmOKf28AM6uc9GoDEriaQT8nFs+ szqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767913466; x=1768518266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BwUB2cayiLwwDdtvJpiYXS203h3m3uyKKPss8d5TaJ4=; b=ZiL3E3BBAApj34WmlbTXdRi1HMjAV/vwN50JtJZAeEHttnmhKt5RXZHLVp9JIkSRF2 E7VfMyDojqld26pcEmq2PXujB61pJIK41jvE7/HU97LXHo8E7zxw299fHnjnkdz1niqP w47SOXPfuAoBCpkA/t7i3kFe566HJw6OzOypRvsfZx/EayH0PF9LvNJoOTI+LmSCd1XD IDBn/gxE/ATTVICvnRPcaOd48OBCpRBnZAoTjUO96XxPf7jYdzHZucSDRiw2lGTWXQw8 rsY4U5mR/MK5t+oVKvPV/AYlKm+7FwgWWrwfP4hXaAGDhz1cjD6fZc/9DMGYDYF9f7zD C9Uw== X-Gm-Message-State: AOJu0Yz4amkCws6ZViaAPg00+WZe0L72srWXBUdy6WlftqRrCdIN4Pck X8um6y73+J0kHngK1qiBljowosqQONe8vQrrrWT4tqLiMjZqfgRDjNYncNKSI1+FMD52Qx0x8mz NST7p4Lk4UdIn09YYpOwmcjhFyCvkfRozd7zQ7qj0m2hcIvkwjC6vNn6cNVMm577B0M0dmbeUO6 nZiKngAo4jZY+omSkptQnrHmTgg/AgqQ0BcPPKOd4= X-Gm-Gg: AY/fxX57nHF+V6iHJUfnVJ61to87KU63/8eT/6frv51sv3ExwueJmO2vFQjcm4vXBp3 s59u1kVgAwGMuWZSiFhivi3/q6ASGfanUj35Xb9tWzvCvVG5jiGpFzFt9/OnVXZQIa3R9D2VFda nejbRuiVnTOy5JpuJtQQoNDnBmuPom1S8pRMGtRe4xsruZrDbzuKv8kMOFWoKHuchBw3t/InqSX jjXFDAeUfAQ6qLhueSwAiBLpOp66eHJwsfXKXTUTCstFYG9+qJQYN9sAs03Rps3Ov5Ag7D5GtdO 7kmbO6yamWcGgWgxZU6PWHZJgSex5rK396XjGSKX44QfiKWwKOBawbFDuMwB2geswtXIKLGEoSN XLXqvDxBiX51B3QxulmFVgFgMWxtVqi4aFVXXjHQ= X-Received: by 2002:a05:620a:7101:b0:8b2:eea5:3324 with SMTP id af79cd13be357-8c389392555mr1101997185a.27.1767913465932; Thu, 08 Jan 2026 15:04:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IF6UJRotin8O82fOJkNqeh1FWnEsKGodV2zRNiTWZ612SY94cR9JZuFhyVzgXXNlHHdf9lYNA== X-Received: by 2002:a05:620a:7101:b0:8b2:eea5:3324 with SMTP id af79cd13be357-8c389392555mr1101992085a.27.1767913465426; Thu, 08 Jan 2026 15:04:25 -0800 (PST) From: Chandan Somani To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, marcandre.lureau@gmail.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Stefan Berger , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost Subject: [PATCH v2 3/5] qdev: make release_drive() idempotent Date: Thu, 8 Jan 2026 15:03:09 -0800 Message-ID: <20260108230311.584141-4-csomani@redhat.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20260108230311.584141-1-csomani@redhat.com> References: <20260108230311.584141-1-csomani@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 (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=170.10.133.124; envelope-from=csomani@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1767913507513158501 From: Marc-Andr=C3=A9 Lureau So it can eventually be called multiple times safely. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Stefan Berger Message-Id: <20250429140306.190384-3-marcandre.lureau@redhat.com> Reviewed-by: Stefan Hajnoczi --- hw/core/qdev-properties-system.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index fe5464c7da..a402321f42 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -232,6 +232,7 @@ static void release_drive(Object *obj, const char *name= , void *opaque) if (*ptr) { blockdev_auto_del(*ptr); blk_detach_dev(*ptr, dev); + *ptr =3D NULL; } } =20 --=20 2.51.1 From nobody Sun Feb 8 20:23:08 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1767913505; cv=none; d=zohomail.com; s=zohoarc; b=P/TtzVAlG4abft7HRtYKA95IKabCmjaaC7ek9o+Z2+MupHDgGPejI500eY8RowN2TR6+SXjuVC5eF3+zET8K6PXuXaAIv85WW6AKvmX82KYeLNNXM1c4joWWd90ymdwthfosOhnqDgN4u0skkYurZmNTEssgDs1dgHA3ZCVLcCA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767913505; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/wOYTEAvtiSe9YSYoR3MVQ33obg2WZXnCauUYIHGp4U=; b=Y3fnsgOidsZR6Kd14iZr85Va75IG7EzkeAXJrTFZYHyIRry9OVAoFBzZPtOu67dgd9a1WSvt8irg9ZRYFsDL82g8yCnUt/FR538h1CpIqZP0mjEXMpZNIBdDvhqeYJz7NW7eyNqUCJp3dKgLbxfBo0/P+hZqkLBNPG08s9/8Otw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767913505745124.64652229463923; Thu, 8 Jan 2026 15:05:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdz3h-0007WL-29; Thu, 08 Jan 2026 18:04:49 -0500 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 1vdz3d-0007Sx-RY for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdz3c-0003Yx-8Q for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:45 -0500 Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-623-1KTWGnOvPbaKNrS7DrnMDA-1; Thu, 08 Jan 2026 18:04:36 -0500 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8b2e2342803so930039285a.3 for ; Thu, 08 Jan 2026 15:04:35 -0800 (PST) Received: from csomani-thinkpadp1gen7.rmtusca.csb ([47.153.136.179]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8c37f51b787sm680000685a.29.2026.01.08.15.04.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 15:04:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767913483; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/wOYTEAvtiSe9YSYoR3MVQ33obg2WZXnCauUYIHGp4U=; b=gY+1E11oSv3h8dJvnj6Jd64P1aEpcjNjMfJQuok1b0Ig9/rNLMzuS7tI6cre953HBydYBi uF3ZacSojDkFtnPvhXUmnPwQNUCqHb6LXbj1Z8A2YPQqjYzeViuq0tqPRrcNpYFG9dSSQI 2pdyDKVvSAIm82gDfrwNGr92nJNsx5c= X-MC-Unique: 1KTWGnOvPbaKNrS7DrnMDA-1 X-Mimecast-MFC-AGG-ID: 1KTWGnOvPbaKNrS7DrnMDA_1767913468 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1767913468; x=1768518268; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/wOYTEAvtiSe9YSYoR3MVQ33obg2WZXnCauUYIHGp4U=; b=hjubA3Biu2FlH2/vl2FltFKsgrNZr40d95r0lZsPk0MrS35B3Gvb9DkBpH6ig6uXcn /JM0eVoXgOP8KLtdZO7YgEwWE3hKu3DHqQSm1Pm1I+Y9TCcCsyJunG2I+ReYxbX0IIfJ Dr1OAe6SmSTieSqUnNZgt3ID5yGb1RSlK8xT6sDIzdC/0260Ypeedh6wnO4P/aLs1XOM xrkjpKnCPAVsztEk5Ond32yNQRcIgB7jgDWhy4SG5V6O9p+4X+kHlLmaGP80S2aggb0C t+1nP/JokZcdDoIH7wELLpdDCo+ABLqUi2jJ6TTUJb9rPpUWKbon5bGh2IPmR+ehBcw4 9Zxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767913468; x=1768518268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/wOYTEAvtiSe9YSYoR3MVQ33obg2WZXnCauUYIHGp4U=; b=M2RDIDqzYrC8lNd78jzRG0iUn4VyY00U5K+JP9/zxWuPQrTONbTO78KYRV85AtEQ+x wXmsEgDPOXN+qtp7KOCatV+mGf8j7Gui3y84hwlh2jFBkOWsiBR9h26fH8qGgK9l/y++ UsdBChd/wloA46kGLeg0/gIF+5cusO8HsXY2rTPsfopaYeW2vpdbQOpDM/bSxzHwuMDI 0Jf3SyPITv6WmpW7+2yX+pGt5dy4T9w4b9a1mFn7xGpUpwi64U8LOjYpwrZK9vr40KK7 1e/ajoC466+iNOUW5hVfjFqCDmgYucgSVfOfGJqVW/Wfl/o4R/2GFAOOPfPJcsj+SIR5 wNIQ== X-Gm-Message-State: AOJu0Yz8YBOzWryMPVR1Wz0O4IO9P0HVYOYH4RH8TURcfE7TRLE2BcOO KNxLbZ3q9oB2d4qeIzwOwyJxF1EC9BfYEd0/AFnyFEsAZP9VhFadGrOsr14nFM0Y8Gf4Qadgzvi 6ObBK1pqzCr0JvCvzS57SFwHluExao/2pSl3qpAE4kfiF9XZWEXTamYQr5T9sbYxGybUDmb+ZW3 sn1mBmEp+OXwKypUnnOiD6tAEoZDU2qgfc7jybfuY= X-Gm-Gg: AY/fxX5NoohE+KmVZN/Pi0Mmu8a1bllJfQ4kB+cS/q28s9K14X4EUP7fZIgQW5oBSdv Avo/xrs486lf21AD6y/2DUjP2yJlhihYtGvHTKnLjwKhyu/j0Ji6N6mua4IJ/oRjfOU3LbtGsq8 WKjwwuDM0+g39afU/YLh42r8bDbqe++Y9TLlC5TDu4YSa8hYd91k8XULME7rggOgiiPWONm5/AE UUFI/MQmnCTm2AgNTdZZAKfa32+udhzt81HjYqUW59E3o/II7o5+OwPG3ZkgVJb6LCYxMF4x2ea PULXinpdYexd+hR6UNfZCKW2F+GOLTmeVi0M1R/ps9Qv80fEUi3qJhKOmSv2N/VvE0sWRNtXgoN 5DvjrAIJpJt0Q/0kqs9l0++7f/95ty9r6YBriWgw= X-Received: by 2002:a05:620a:f0f:b0:863:42ea:d687 with SMTP id af79cd13be357-8c38940c2c5mr1046482185a.78.1767913468055; Thu, 08 Jan 2026 15:04:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IHqRc9bLVLIFbSWb6p7UQfcE+awwIUOeB9+iC0MWv1rMECa22+q5Bz2rlOOLczN5k4v1uS69g== X-Received: by 2002:a05:620a:f0f:b0:863:42ea:d687 with SMTP id af79cd13be357-8c38940c2c5mr1046477585a.78.1767913467561; Thu, 08 Jan 2026 15:04:27 -0800 (PST) From: Chandan Somani To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, marcandre.lureau@gmail.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Stefan Berger , Stefan Berger Subject: [PATCH v2 4/5] qdev: make release_tpm() idempotent Date: Thu, 8 Jan 2026 15:03:10 -0800 Message-ID: <20260108230311.584141-5-csomani@redhat.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20260108230311.584141-1-csomani@redhat.com> References: <20260108230311.584141-1-csomani@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 (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=170.10.129.124; envelope-from=csomani@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1767913507439158500 From: Marc-Andr=C3=A9 Lureau So it can eventually be called multiple times safely. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Stefan Berger Message-Id: <20250429140306.190384-4-marcandre.lureau@redhat.com> Reviewed-by: Stefan Hajnoczi --- backends/tpm/tpm_util.c | 1 + 1 file changed, 1 insertion(+) diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c index a64e156f45..264bff22a9 100644 --- a/backends/tpm/tpm_util.c +++ b/backends/tpm/tpm_util.c @@ -72,6 +72,7 @@ static void release_tpm(Object *obj, const char *name, vo= id *opaque) =20 if (*be) { tpm_backend_reset(*be); + *be =3D NULL; } } =20 --=20 2.51.1 From nobody Sun Feb 8 20:23:08 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1767913497; cv=none; d=zohomail.com; s=zohoarc; b=CDCmLcFKX7ulnko3u5GBo+r+or3QT4c/wsQztxkJ8z9QTbFCr6Q8MeXeRj7bpy8AduW0Pt7dfvRNgJv/VmJkNnpiVnMwH4p5mzzrn5td35fn30EzWbwbEqmYhwc+BI5z76WM1uegbdm+pOAxNeKpw8/S7CYn4EUOn6VpVV4ppKg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767913497; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Cv1t496rtiOvHFcgquBJQKTEpYow9+MipYjH+vSBpgk=; b=i4nqclV72eDjI6Xd8mlHR0Mn6qYx8AgQWl5KRPSAQSGA8+pu6JbiEBO/7T1pM9pdtZc1omc0wUmUL7TnEFKHs2ZlYlRaGgduWoi5Tti/qbIIOAIzijveIk6SuXK0NUtFRcMyV7nHMyjASsqYwf07wVDd0bexgemseV2YQzJGXno= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767913497449136.46728573676285; Thu, 8 Jan 2026 15:04:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vdz3V-0007GD-DE; Thu, 08 Jan 2026 18:04:37 -0500 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 1vdz3U-0007FP-CK for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:36 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vdz3S-0003Vb-N6 for qemu-devel@nongnu.org; Thu, 08 Jan 2026 18:04:36 -0500 Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-605-uADfvPngPpKTFMw-hvP7qg-1; Thu, 08 Jan 2026 18:04:30 -0500 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8b8738fb141so691103285a.0 for ; Thu, 08 Jan 2026 15:04:30 -0800 (PST) Received: from csomani-thinkpadp1gen7.rmtusca.csb ([47.153.136.179]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8c37f51b787sm680000685a.29.2026.01.08.15.04.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 15:04:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767913471; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Cv1t496rtiOvHFcgquBJQKTEpYow9+MipYjH+vSBpgk=; b=L0P7aJX1AtO3LifTgyJku1M8FFCYoKo4XAG82NsE3Bup53wp6fynB86LskSyGxEJAceO6L utRFQQLWY0/zF1h3PED6WIZfX7VgcFIy4OPHS0jVSV8RTOUvQ0R1iLN3yAt+LZvuAAZTzg oPYh2VlNs6ihyf07S76pAuA2uqRotSs= X-MC-Unique: uADfvPngPpKTFMw-hvP7qg-1 X-Mimecast-MFC-AGG-ID: uADfvPngPpKTFMw-hvP7qg_1767913470 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1767913470; x=1768518270; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Cv1t496rtiOvHFcgquBJQKTEpYow9+MipYjH+vSBpgk=; b=MlPydl4WcxSSfmAhYh1TZCstCKoK6npa7+IjG1+VY2kJaXDfdqtlim7AdPdih/gz9M CjFMCjc3HGEmxc19snMNFmuwDtrHQAvULJGFk7Lu3HI6AA45fiG35KulqoORvToPNiZs kNPuc6cv4+b/i9uWkds/U41hjJVdhS4QGMxEthEX0CFD6914ci7YDsmr74QGTr7Wfc1/ /Qw4fq5eFzvCln4eg7miMheGHvgsWUvjj1VvqOR2l1joIEVx90H2ydTxJQ2s7SSI+PRf wL1bq63ivQJOUC6UvDyzvwWb77o8JPpPT/F/BH17wE0BC8wfy3gRXu8NfyiyrHRBfHcS 2wQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767913470; x=1768518270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Cv1t496rtiOvHFcgquBJQKTEpYow9+MipYjH+vSBpgk=; b=ktdSdf0Vl+CYoP8x5+cKHcfmKKs35nB5cGPJ11xlkgujE4gpmUai9N19ythrhOpfkF CZmPiIYjxL4R3XsLlK5WHtRI6T0U5XCGTg4Ik7dsDEJrozJrlxGqwWbiSEMtCAnWAHA7 8E5bpSwR+lxQwx+1+3GflTwR3YoxDvyuVTGbXra7ZplZPy4HsHIbgVc0hf8tf4l75qJI 4og1jPtsq/pfEmheVCplkQJEyozNaSnNc5qlBufmoUii4auwcmpxAyx5fqUo0Q3HBZ7y uj1DpKm9A0YU5SU71aJLJQzysv4q8Z+6nOrp1v34sm7+wtZqsqgQwevHoW/f2YDXWJvV urJQ== X-Gm-Message-State: AOJu0Yz8LdI6NZ7oUmCSeCiS5OKUvntxMJKM/UQ/osoxgbIsroWilgzn kl2EuCxWTMWSUW/K4C1KOaVXMFpoC++WT3YlGMNTd53UwM0qayWa1R2KqOXbKm9e8CTVn6VT+9A VtopxLaBTbPhHsjjXTJ9Ax1KxJUXJJDPwHd3FMKgG2x36Y2esfjg3G0Lu+GAnuUsWtkscRyJ5VJ Qoa2xnVtc3nUDneFv/B1f0Wzfa6sxYkJQLg2rdeGA= X-Gm-Gg: AY/fxX5P1hsDCOhvP6bz3Cz2ddfwz7tQ0omRoS533QnmCNTxCBNbA/QLU68R40AqnWq MzuuAlUuyjVA2J2wbUN7y9LJzlBA6t2Ic1uKoruM6pVDNG0qwl58mEFymSnipU/d+y4ZoeVdGLk 2kSxX1IFHykCHvFp6nzTWei6sG4WTLJXdD7/A8JJWriUF1SUNcHkS0VeirTtdAG6G/pEA4APCiR fuUGGYt9JruN2jaY9UnGHlgYcQq0ptA/RrQZ7Tnt2jATcIJYC2xDVjpj0ieu0Zn5v5yCSDCpvkg DxUm5/P7ZMdA6MlmhungJIFa72LWz6Sqm+u+7GIsZ1tlkI7DI/Tz7dXcQNAgN67/CsOSHfYnwV/ tmO37JysPAn8IolpUJEY54qjucMmkUQovETtwNNk= X-Received: by 2002:a05:620a:7004:b0:8b2:e177:ddb0 with SMTP id af79cd13be357-8c388bd8d6emr965150785a.23.1767913469910; Thu, 08 Jan 2026 15:04:29 -0800 (PST) X-Google-Smtp-Source: AGHT+IEzL2AJ6ZodN/dLEOhjkEmnGrR7OpZAqsq3O/8QBb+eL89B+9yPGgRYwg9ZIFVmQeOEiFIYOA== X-Received: by 2002:a05:620a:7004:b0:8b2:e177:ddb0 with SMTP id af79cd13be357-8c388bd8d6emr965146585a.23.1767913469427; Thu, 08 Jan 2026 15:04:29 -0800 (PST) From: Chandan Somani To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, marcandre.lureau@gmail.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Stefan Berger Subject: [PATCH v2 5/5] tests: add /qdev/free-properties test Date: Thu, 8 Jan 2026 15:03:11 -0800 Message-ID: <20260108230311.584141-6-csomani@redhat.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20260108230311.584141-1-csomani@redhat.com> References: <20260108230311.584141-1-csomani@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 (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=170.10.129.124; envelope-from=csomani@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1767913499396158500 From: Marc-Andr=C3=A9 Lureau Add a simple qdev test to check that allocated properties get freed with the object. This test exhibited array leaks before the fixes. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Stefan Berger Message-Id: <20250429140306.190384-6-marcandre.lureau@redhat.com> Reviewed-by: Stefan Hajnoczi --- tests/unit/meson.build | 1 + tests/unit/test-qdev.c | 96 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 tests/unit/test-qdev.c diff --git a/tests/unit/meson.build b/tests/unit/meson.build index bd58029060..41e8b06c33 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -156,6 +156,7 @@ if have_system 'test-qdev-global-props': [qom, hwcore] } endif + tests +=3D {'test-qdev': [qom, hwcore]} endif =20 if have_ga and host_os =3D=3D 'linux' diff --git a/tests/unit/test-qdev.c b/tests/unit/test-qdev.c new file mode 100644 index 0000000000..20eae38e03 --- /dev/null +++ b/tests/unit/test-qdev.c @@ -0,0 +1,96 @@ +#include "qemu/osdep.h" +#include "hw/core/qdev-properties.h" +#include "qom/object.h" +#include "qapi/error.h" +#include "qapi/visitor.h" + + +#define TYPE_MY_DEV "my-dev" +typedef struct MyDev MyDev; +DECLARE_INSTANCE_CHECKER(MyDev, STATIC_TYPE, + TYPE_MY_DEV) + +struct MyDev { + DeviceState parent_obj; + + uint32_t prop_u32; + char *prop_string; + uint32_t *prop_array_u32; + uint32_t prop_array_u32_nb; +}; + +static const Property my_dev_props[] =3D { + DEFINE_PROP_UINT32("u32", MyDev, prop_u32, 100), + DEFINE_PROP_STRING("string", MyDev, prop_string), + DEFINE_PROP_ARRAY("array-u32", MyDev, prop_array_u32_nb, prop_array_u3= 2, + qdev_prop_uint32, uint32_t), +}; + +static void my_dev_class_init(ObjectClass *oc, const void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(oc); + + dc->realize =3D NULL; + device_class_set_props(dc, my_dev_props); +} + +static const TypeInfo my_dev_type_info =3D { + .name =3D TYPE_MY_DEV, + .parent =3D TYPE_DEVICE, + .instance_size =3D sizeof(MyDev), + .class_init =3D my_dev_class_init, +}; + +/* + * Initialize a fake machine, being prepared for future tests. + * + * Realization of anonymous qdev (with no parent object) requires both + * the machine object and its "unattached" container to be at least presen= t. + */ +static void test_init_machine(void) +{ + /* This is a fake machine - it doesn't need to be a machine object */ + Object *machine =3D object_property_add_new_container( + object_get_root(), "machine"); + + /* This container must exist for anonymous qdevs to realize() */ + object_property_add_new_container(machine, "unattached"); +} + +static void test_qdev_free_properties(void) +{ + MyDev *mt; + + mt =3D STATIC_TYPE(object_new(TYPE_MY_DEV)); + object_set_props(OBJECT(mt), &error_fatal, + "string", "something", + "array-u32", "12,13", + NULL); + qdev_realize(DEVICE(mt), NULL, &error_fatal); + + g_assert_cmpuint(mt->prop_u32, =3D=3D, 100); + g_assert_cmpstr(mt->prop_string, =3D=3D, "something"); + g_assert_cmpuint(mt->prop_array_u32_nb, =3D=3D, 2); + g_assert_cmpuint(mt->prop_array_u32[0], =3D=3D, 12); + g_assert_cmpuint(mt->prop_array_u32[1], =3D=3D, 13); + + object_unparent(OBJECT(mt)); + object_unref(mt); +} + + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + + module_call_init(MODULE_INIT_QOM); + type_register_static(&my_dev_type_info); + test_init_machine(); + + g_test_add_func("/qdev/free-properties", + test_qdev_free_properties); + + g_test_run(); + + return 0; +} --=20 2.51.1