From nobody Sun Apr 12 04:20:56 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=1771346496; cv=none; d=zohomail.com; s=zohoarc; b=VZvn4sVVeZFRFn82XkPGBEINqvYZMaDWo/T7x6/Turn6koAwGTYsKE9Cg8gk4ZFmFKwRNuhbYdryDwGBRewJgAZGFW/jhzMqq85LwD1e9E6k/Z0Qaa2ntC5gLK1N077R0AcbVzL6P+wlW0YH1iGNoxjRz9SznSzB3KqXnWSTtrQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771346496; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DejpKVRZUPYFzZjdwhCH66CtHR46oA0qvkrBRbHip10=; b=aqfsB86aFDQMyOD6jA9xfJLb8eTFe5+kvH5A9NbEKJkHtLQI2ff+QcLdU4fveeTPw2c1xGkPRuNdUZto2SKQ92/7fdE+c6l5xqbeeimz0PKl4EVAoQ3eoBRj/4Vij1dfKr1A86xG/2JY/G5M4pbgxK2ZVk65D3+G3wJUOr6Oyl0= 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 1771346496251102.59970380805692; Tue, 17 Feb 2026 08:41:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsO8H-00050I-Qn; Tue, 17 Feb 2026 11:41:05 -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 1vsO8F-0004zX-Oy for qemu-devel@nongnu.org; Tue, 17 Feb 2026 11:41:03 -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 1vsO8B-0001rv-Gq for qemu-devel@nongnu.org; Tue, 17 Feb 2026 11:41:03 -0500 Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-26-xFUcS7ZDOr2oHRqHKQmN4g-1; Tue, 17 Feb 2026 11:40:55 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 04AFC1955F11; Tue, 17 Feb 2026 16:40:54 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.45.224.144]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8950A30001A5; Tue, 17 Feb 2026 16:40:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771346456; 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; bh=DejpKVRZUPYFzZjdwhCH66CtHR46oA0qvkrBRbHip10=; b=SURr6btiXyuR+eurEAFa1UNRgmL0DsLLYWumAU/XXi8i2FLb5WMpf/miqIh4Xp4ZhqT4Mu Emi9sE9xLp3pqwSezRCR+374ltUl59dXOT6OghaCsnTK1DuZL96VTnVzMyf942v6tMxl3H q4dMyT/E/HJsIWI/hQLoqwZpCtZTm+Y= X-MC-Unique: xFUcS7ZDOr2oHRqHKQmN4g-1 X-Mimecast-MFC-AGG-ID: xFUcS7ZDOr2oHRqHKQmN4g_1771346454 From: Thomas Huth To: qemu-devel@nongnu.org, Paolo Bonzini Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster Subject: [RFC PATCH] hw/core: Avoid attaching qdevs to /machine/unattached if they have a bus Date: Tue, 17 Feb 2026 17:40:49 +0100 Message-ID: <20260217164049.543975-1-thuth@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 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=thuth@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.043, 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_H5=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: qemu development 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: 1771346499022154100 Content-Type: text/plain; charset="utf-8" From: Thomas Huth We still have a lot of devices that end up in /machine/unattached in case the caller forgot to use object_property_add_child() to add it to a proper location in the QOM tree. But at least for the devices that get realized via qdev_realize() and that have a bus specified, we can do better: Add the device automatically as a child to the bus device instead! This way the QOM tree looks way more logical, with way less devices hanging around in the /machine/unattached space. While we're at it, use the type name as node name (instead of using "device" like we did in the "unattached" space). But since these entries might not be stable (they use a counting number in the square brackets), the code also uses a "x-" prefix here to indicate that this still might change in the course of time (once a board decides to manually attach the device with a proper name instead). Signed-off-by: Thomas Huth --- hw/core/qdev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 42641c5224e..5b773d0108a 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -266,9 +266,19 @@ bool qdev_realize(DeviceState *dev, BusState *bus, Err= or **errp) assert(!dev->realized && !dev->parent_bus); =20 if (bus) { + Object *obj =3D OBJECT(dev); + if (!qdev_set_parent_bus(dev, bus, errp)) { return false; } + + if (!obj->parent) { + static int count; + g_autofree char *name =3D g_strdup_printf("x-%s[%d]", + object_get_typename(ob= j), + count++); + object_property_add_child(OBJECT(bus), name, obj); + } } else { assert(!DEVICE_GET_CLASS(dev)->bus_type); } --=20 2.53.0