From nobody Sun Feb 8 11:06:17 2026 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1702645605001885.8390712117823; Fri, 15 Dec 2023 05:06:45 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id E57C11B1F; Fri, 15 Dec 2023 08:06:43 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 758361A0E; Fri, 15 Dec 2023 07:35:48 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 4232C19DD; Fri, 15 Dec 2023 07:34:30 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id D3AC31A39 for ; Fri, 15 Dec 2023 07:33:43 -0500 (EST) Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-541-7jlMfTrYMca-oeHGb3HJiQ-1; Fri, 15 Dec 2023 07:33:41 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9E29538062A9 for ; Fri, 15 Dec 2023 12:33:41 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 237A01C060B1 for ; Fri, 15 Dec 2023 12:33:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: 7jlMfTrYMca-oeHGb3HJiQ-1 From: Peter Krempa To: devel@lists.libvirt.org Subject: [PATCH 13/19] qemu: process: Separate setup of network device objects Date: Fri, 15 Dec 2023 13:33:23 +0100 Message-ID: <0a11eaff0b749bdbfba2dc7c62278c8a9beea3ed.1702643447.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: ZMFVNBOJA3D664BTRDWN4JW7AOISG2V7 X-Message-ID-Hash: ZMFVNBOJA3D664BTRDWN4JW7AOISG2V7 X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1702645606350100001 Separate the SLIRP bits from 'qemuProcessNetworkPrepareDevices' and do the setup of the internal data when setting up domain data. This will allow tests to use the same code path to lookup data for a network. Signed-off-by: Peter Krempa --- src/qemu/qemu_process.c | 45 ++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index fc05b4b24f..b1a225f5e5 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5705,12 +5705,8 @@ qemuProcessInit(virQEMUDriver *driver, } -/** - * qemuProcessNetworkPrepareDevices - */ static int -qemuProcessNetworkPrepareDevices(virQEMUDriver *driver, - virDomainObj *vm) +qemuProcessPrepareDomainNetwork(virDomainObj *vm) { virDomainDef *def =3D vm->def; qemuDomainObjPrivate *priv =3D vm->privateData; @@ -5762,15 +5758,32 @@ qemuProcessNetworkPrepareDevices(virQEMUDriver *dri= ver, if (virDomainHostdevInsert(def, hostdev) < 0) return -1; - } else if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_USER && - net->backend.type =3D=3D VIR_DOMAIN_NET_BACKEND_DEFAULT= && - !priv->disableSlirp && - virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DBUS_VMSTATE))= { - if (qemuInterfacePrepareSlirp(driver, net) < 0) + } + } + return 0; +} + + +static int +qemuProcessPrepareHostNetwork(virDomainObj *vm) +{ + qemuDomainObjPrivate *priv =3D vm->privateData; + size_t i; + + for (i =3D 0; i < vm->def->nnets; i++) { + virDomainNetDef *net =3D vm->def->nets[i]; + virDomainNetType actualType =3D virDomainNetGetActualType(net); + + if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_USER && + net->backend.type =3D=3D VIR_DOMAIN_NET_BACKEND_DEFAULT && + !priv->disableSlirp && + virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DBUS_VMSTATE)) { + if (qemuInterfacePrepareSlirp(priv->driver, net) < 0) return -1; - } + } } + return 0; } @@ -6627,6 +6640,10 @@ qemuProcessPrepareDomain(virQEMUDriver *driver, if (qemuProcessPrepareDomainHostdevs(vm, priv) < 0) return -1; + VIR_DEBUG("Setting up network devices"); + if (qemuProcessPrepareDomainNetwork(vm) < 0) + return -1; + VIR_DEBUG("Prepare chardev source backends"); if (qemuProcessPrepareChardevSource(vm->def, cfg) < 0) return -1; @@ -7192,12 +7209,8 @@ qemuProcessPrepareHost(virQEMUDriver *driver, if (qemuProcessOpenVhostVsock(vm->def->vsock) < 0) return -1; } - /* network devices must be "prepared" before hostdevs, because - * setting up a network device might create a new hostdev that - * will need to be setup. - */ VIR_DEBUG("Preparing network devices"); - if (qemuProcessNetworkPrepareDevices(driver, vm) < 0) + if (qemuProcessPrepareHostNetwork(vm) < 0) return -1; /* Must be run before security labelling */ --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org