From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778483; cv=none; d=zohomail.com; s=zohoarc; b=hoYdi+V/vS3OhTgWP3u68sYKv12g3fxPKSgNIe1bghRxUneAdgYf4JYEo7G9dINfkxzUK0wxDFUvbtuuUV1PpWMrlm8syEDN+9y8m64istIHkZGfwUdlxEq9VhCsVuxUCWwYSpsSlxSxrtCZ45EQKL2l7UOvJnJ4Ox8etYevvE0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778483; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=isyXYEQeG62P65VEDgNN6wjzeADNx7IVqCFlv5xsrig=; b=iQvjykZ2QXuY8dl3NZAmPdLZ/QBekjxyD9VfAKStXEmDF09GY8PH3htpjGphpDt13N/YykbcwXpx5DWag8L0BgQT/7OvNkyGvcnT1ytVtXMsjCcJ6F66SPQkGgm0j6hGLX7dXI22yZOpaUW26+lJbSXCNnBYziyBPu0B00KVDbY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1652778483979369.3144471814197; Tue, 17 May 2022 02:08:03 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-438-HMogIRmyMaGme8q83EZyMw-1; Tue, 17 May 2022 05:07:33 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 392E13C10256; Tue, 17 May 2022 09:07:31 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1E3E040CF8F0; Tue, 17 May 2022 09:07:31 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 62B891947079; Tue, 17 May 2022 09:07:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 502A21947056 for ; Tue, 17 May 2022 09:07:29 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 45369156D12A; Tue, 17 May 2022 09:07:29 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id C7720156D120 for ; Tue, 17 May 2022 09:07:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778483; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=isyXYEQeG62P65VEDgNN6wjzeADNx7IVqCFlv5xsrig=; b=cfTFqjgm5hMXh819HSMoRffSXjVxUoECpUeaKHpSV+t/axQGe3m7vg5Gfysf7qJvB+fJJ1 ObutdYS1N7lIzDxFDMVSPIVAi+T1kKKdFv4XA7bp4P6bwbMLB9Ge+aDRqX1rycZYXhx15y zNF4FEVn3NT49Vo7QPyny/gPv0XSVzQ= X-MC-Unique: HMogIRmyMaGme8q83EZyMw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 1/9] qemu: fd: Add a distinct set of APIs for 'direct' fd passing mode Date: Tue, 17 May 2022 11:07:18 +0200 Message-Id: <6650bdbb9fd5f5bdab28112b0082d1ad3fbbc2b1.1652778351.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778484495100001 Content-Type: text/plain; charset="utf-8" Originally I envisioned a common set of APIs for both FD passing approaches but it turns out they are not really compatible enough for it to make sense to use one set of APIs. As of such introduce a distinct set of APIs for the 'direct' mode, which will later be used to convert all places that currently use 'qemuFDPassNewDirect' and later clean up the existing APIs. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_fd.c | 128 +++++++++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_fd.h | 22 ++++++++ 2 files changed, 150 insertions(+) diff --git a/src/qemu/qemu_fd.c b/src/qemu/qemu_fd.c index 4641122d1f..442f92df2f 100644 --- a/src/qemu/qemu_fd.c +++ b/src/qemu/qemu_fd.c @@ -324,3 +324,131 @@ qemuFDPassGetPath(qemuFDPass *fdpass) return fdpass->path; } + + +struct _qemuFDPassDirect { + int fd; + char *path; + char *name; + + bool passed; /* passed to qemu via monitor */ +}; + + +void +qemuFDPassDirectFree(qemuFDPassDirect *fdpass) +{ + + if (!fdpass) + return; + + VIR_FORCE_CLOSE(fdpass->fd); + g_free(fdpass->path); + g_free(fdpass); +} + + +/** + * qemuFDPassDirectNew: + * @name: Name of the fd (for monitor passing use-case) + * @fd: The FD, cleared when passed. + * + * The qemuFDPassDirect helper returned by this helper is used to hold a FD + * passed to qemu either direcly via FD number when used on commandline or= the + * 'getfd' QMP command. + */ +qemuFDPassDirect * +qemuFDPassDirectNew(const char *name, + int *fd) +{ + qemuFDPassDirect *fdpass =3D g_new0(qemuFDPassDirect, 1); + + fdpass->name =3D g_strdup(name); + fdpass->fd =3D *fd; + *fd =3D -1; + + return fdpass; +} + + +/** + * qemuFDPassDirectTransferCommand: + * @fdpass: The fd passing helper struct + * @cmd: Command to pass the filedescriptors to + * + * Pass the fds in @fdpass to a commandline object @cmd. @fdpass may be NU= LL + * in which case this is a no-op. + */ +void +qemuFDPassDirectTransferCommand(qemuFDPassDirect *fdpass, + virCommand *cmd) +{ + if (!fdpass) + return; + + virCommandPassFD(cmd, fdpass->fd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); + fdpass->path =3D g_strdup_printf("%d", fdpass->fd); + fdpass->fd =3D -1; +} + + +/** + * qemuFDPassDirectTransferMonitor: + * @fdpass: The fd passing helper struct + * @mon: monitor object + * + * Pass the fds in @fdpass to qemu via the monitor. @fdpass may be NULL + * in which case this is a no-op. Caller needs to enter the monitor contex= t. + */ +int +qemuFDPassDirectTransferMonitor(qemuFDPassDirect *fdpass, + qemuMonitor *mon) +{ + if (!fdpass) + return 0; + + if (qemuMonitorSendFileHandle(mon, fdpass->name, fdpass->fd) < 0) + return -1; + + fdpass->path =3D g_strdup(fdpass->name); + VIR_FORCE_CLOSE(fdpass->fd); + fdpass->passed =3D true; + + return 0; +} + + +/** + * qemuFDPassDirectTransferMonitorRollback: + * @fdpass: The fd passing helper struct + * @mon: monitor object + * + * Rolls back the addition of @fdpass to @mon if it was added originally. + */ +void +qemuFDPassDirectTransferMonitorRollback(qemuFDPassDirect *fdpass, + qemuMonitor *mon) +{ + if (!fdpass || !fdpass->passed) + return; + + ignore_value(qemuMonitorCloseFileHandle(mon, fdpass->name)); +} + + +/** + * qemuFDPassDirectGetPath: + * @fdpass: The fd passing helper struct + * + * Returns the path/fd name that is used in qemu to refer to the passed FD. + * Note that it's only valid to call this function after @fdpass was alrea= dy + * transferred to the command or monitor. + */ +const char * +qemuFDPassDirectGetPath(qemuFDPassDirect *fdpass) +{ + if (!fdpass) + return NULL; + + return fdpass->path; +} diff --git a/src/qemu/qemu_fd.h b/src/qemu/qemu_fd.h index d078d4ce5d..dbb4ab0aa5 100644 --- a/src/qemu/qemu_fd.h +++ b/src/qemu/qemu_fd.h @@ -53,3 +53,25 @@ qemuFDPassTransferMonitorRollback(qemuFDPass *fdpass, const char * qemuFDPassGetPath(qemuFDPass *fdpass); + + +typedef struct _qemuFDPassDirect qemuFDPassDirect; + +void +qemuFDPassDirectFree(qemuFDPassDirect *fdpass); +G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuFDPassDirect, qemuFDPassDirectFree); + +qemuFDPassDirect * +qemuFDPassDirectNew(const char *name, + int *fd); +void +qemuFDPassDirectTransferCommand(qemuFDPassDirect *fdpass, + virCommand *cmd); +int +qemuFDPassDirectTransferMonitor(qemuFDPassDirect *fdpass, + qemuMonitor *mon); +void +qemuFDPassDirectTransferMonitorRollback(qemuFDPassDirect *fdpass, + qemuMonitor *mon); +const char * +qemuFDPassDirectGetPath(qemuFDPassDirect *fdpass); --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778456; cv=none; d=zohomail.com; s=zohoarc; b=NNGdD2jK6pwoi1TpYeCxTwf0fytZgcQpVVnkR8k+fUoQVXLYPxBzU0JxaekAwo8kKxkwtUXWQLYlF0QJYKritUYVdVVJNaLBMaSEwakHH8E+3D44F52ZMoM0v528Ua2qeKJIGWcqlTsRF1rZ0OqfrYu8oBjjGSVslM/DlKstEnA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778456; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3tmvd/X7f0gPK1uVj1p26nPd9b+CSfXsnHuORcwoQ/k=; b=MjVIxKiVgf/0iuLWsqyN174IGVrXIOxB8Ev2zaK1d71vwkEuI6B1XGq2Ye50aUpIa0vQ+qEWcoZslMcmDYsyycanXK6c/xDlnaTVyU5n4p2ziEZJbgy0IqA73mTjyiUkiP9CGUHaIiTmAqFDXhPLhcuDe17191ImAq2GbgFuWGc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1652778456991513.4905477135726; Tue, 17 May 2022 02:07:36 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-269-qoMDukDsMt-l5-PGk-1Geg-1; Tue, 17 May 2022 05:07:34 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 08D8C805F71; Tue, 17 May 2022 09:07:32 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id E8971492C14; Tue, 17 May 2022 09:07:31 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id E06CD1947056; Tue, 17 May 2022 09:07:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2C463194705F for ; Tue, 17 May 2022 09:07:30 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 1BA32156D12B; Tue, 17 May 2022 09:07:30 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id 92206156D120 for ; Tue, 17 May 2022 09:07:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778455; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=3tmvd/X7f0gPK1uVj1p26nPd9b+CSfXsnHuORcwoQ/k=; b=ScUEm3GtU4cCoKDTdF3xguTetrm7i5tWz/JTOozVjVNMSOyY/s97HSDIm0rfTL8LzyiwUX ri4I54bpmdqklFEO2JFiglXNUnZofn5gtZZSf5KNs1V55ZOiG3avQaM2TKyVU6Vw7ziJ/w a28ODbE2GE9Ub06mpDscoNc3gBYCOLo= X-MC-Unique: qoMDukDsMt-l5-PGk-1Geg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 2/9] qemu: Convert passing of 'vhostfd' to 'qemuFDPassDirect' Date: Tue, 17 May 2022 11:07:19 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778458221100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 8 +++----- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_domain.h | 2 +- src/qemu/qemu_hotplug.c | 4 ++-- src/qemu/qemu_interface.c | 8 ++------ tests/qemuxml2argvmock.c | 10 +++------- 6 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a52ba70066..ed7f0eafd2 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4260,7 +4260,7 @@ qemuBuildHostNetProps(virDomainNetDef *net) nfds =3D 0; for (n =3D netpriv->vhostfds; n; n =3D n->next) { - virBufferAsprintf(&buf, "%s:", qemuFDPassGetPath(n->data)); + virBufferAsprintf(&buf, "%s:", qemuFDPassDirectGetPath(n->= data)); nfds++; } @@ -8916,10 +8916,8 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, return -1; } - for (n =3D netpriv->vhostfds; n; n =3D n->next) { - if (qemuFDPassTransferCommand(n->data, cmd) < 0) - return -1; - } + for (n =3D netpriv->vhostfds; n; n =3D n->next) + qemuFDPassDirectTransferCommand(n->data, cmd); if (qemuFDPassTransferCommand(netpriv->slirpfd, cmd) < 0 || qemuFDPassTransferCommand(netpriv->vdpafd, cmd) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 4305d5db06..eba556a6e7 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1053,7 +1053,7 @@ qemuDomainNetworkPrivateClearFDs(qemuDomainNetworkPri= vate *priv) g_clear_pointer(&priv->slirpfd, qemuFDPassFree); g_clear_pointer(&priv->vdpafd, qemuFDPassFree); - g_slist_free_full(g_steal_pointer(&priv->vhostfds), (GDestroyNotify) q= emuFDPassFree); + g_slist_free_full(g_steal_pointer(&priv->vhostfds), (GDestroyNotify) q= emuFDPassDirectFree); g_slist_free_full(g_steal_pointer(&priv->tapfds), (GDestroyNotify) qem= uFDPassFree); } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index e9eda8903e..9475c30e0c 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -405,7 +405,7 @@ struct _qemuDomainNetworkPrivate { /* file descriptor transfer helpers */ qemuFDPass *slirpfd; GSList *tapfds; - GSList *vhostfds; + GSList *vhostfds; /* qemuFDPassDirect */ qemuFDPass *vdpafd; }; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index cae7b0dd3b..da0896a671 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1380,7 +1380,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, } for (n =3D netpriv->vhostfds; n; n =3D n->next) { - if (qemuFDPassTransferMonitor(n->data, priv->mon) < 0) { + if (qemuFDPassDirectTransferMonitor(n->data, priv->mon) < 0) { qemuDomainObjExitMonitor(vm); goto cleanup; } @@ -1528,7 +1528,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, qemuFDPassTransferMonitorRollback(n->data, priv->mon); for (n =3D netpriv->vhostfds; n; n =3D n->next) - qemuFDPassTransferMonitorRollback(n->data, priv->mon); + qemuFDPassDirectTransferMonitorRollback(n->data, priv->mon); qemuDomainObjExitMonitor(vm); virErrorRestore(&originalError); diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c index bda96808eb..ba03277025 100644 --- a/src/qemu/qemu_interface.c +++ b/src/qemu/qemu_interface.c @@ -700,12 +700,10 @@ int qemuInterfaceOpenVhostNet(virDomainObj *vm, virDomainNetDef *net) { - qemuDomainObjPrivate *priv =3D vm->privateData; qemuDomainNetworkPrivate *netpriv =3D QEMU_DOMAIN_NETWORK_PRIVATE(net); size_t i; const char *vhostnet_path =3D net->backend.vhost; size_t vhostfdSize =3D net->driver.virtio.queues; - g_autofree char *prefix =3D g_strdup_printf("vhostfd-%s", net->info.al= ias); if (!vhostfdSize) vhostfdSize =3D 1; @@ -743,8 +741,7 @@ qemuInterfaceOpenVhostNet(virDomainObj *vm, for (i =3D 0; i < vhostfdSize; i++) { VIR_AUTOCLOSE fd =3D open(vhostnet_path, O_RDWR); - g_autoptr(qemuFDPass) pass =3D qemuFDPassNewDirect(prefix, priv); - g_autofree char *suffix =3D g_strdup_printf("%zu", i); + g_autofree char *name =3D g_strdup_printf("vhostfd-%s%zu", net->in= fo.alias, i); /* If the config says explicitly to use vhost and we couldn't open= it, * report an error. @@ -761,8 +758,7 @@ qemuInterfaceOpenVhostNet(virDomainObj *vm, break; } - qemuFDPassAddFD(pass, &fd, suffix); - netpriv->vhostfds =3D g_slist_prepend(netpriv->vhostfds, g_steal_p= ointer(&pass)); + netpriv->vhostfds =3D g_slist_prepend(netpriv->vhostfds, qemuFDPas= sDirectNew(name, &fd)); } netpriv->vhostfds =3D g_slist_reverse(netpriv->vhostfds); diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index aa82ffa2d6..bb14f775f3 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -226,12 +226,10 @@ virNetDevOpenvswitchGetVhostuserIfname(const char *pa= th G_GNUC_UNUSED, } int -qemuInterfaceOpenVhostNet(virDomainObj *vm, +qemuInterfaceOpenVhostNet(virDomainObj *vm G_GNUC_UNUSED, virDomainNetDef *net) { - qemuDomainObjPrivate *priv =3D vm->privateData; qemuDomainNetworkPrivate *netpriv =3D QEMU_DOMAIN_NETWORK_PRIVATE(net); - g_autofree char *prefix =3D g_strdup_printf("vhostfd-%s", net->info.al= ias); size_t vhostfdSize =3D net->driver.virtio.queues; size_t i; @@ -242,12 +240,10 @@ qemuInterfaceOpenVhostNet(virDomainObj *vm, return 0; for (i =3D 0; i < vhostfdSize; i++) { - g_autoptr(qemuFDPass) pass =3D qemuFDPassNewDirect(prefix, priv); - g_autofree char *suffix =3D g_strdup_printf("%zu", i); + g_autofree char *name =3D g_strdup_printf("vhostfd-%s%zu", net->in= fo.alias, i); int fd =3D STDERR_FILENO + 42 + i; - qemuFDPassAddFD(pass, &fd, suffix); - netpriv->vhostfds =3D g_slist_prepend(netpriv->vhostfds, g_steal_p= ointer(&pass)); + netpriv->vhostfds =3D g_slist_prepend(netpriv->vhostfds, qemuFDPas= sDirectNew(name, &fd)); } netpriv->vhostfds =3D g_slist_reverse(netpriv->vhostfds); --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778460; cv=none; d=zohomail.com; s=zohoarc; b=mK6onVRpcObUXXxVGFMogKSgL6HGxzifb39WaixRsGQd2yjiKkyYKFkSlXzpEVLoH0UjgWGWhfpvTa1fVqZ7V6wV8jd5Cb/mmDjCyikgCnx5dWjCHEHIouUjBG2NcKrG5QCy2Uxf21YgjVon+M0NGClMATQSRiorVbDbVzt9+5Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778460; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=i7Ac84Zo30KNd4C+jVHj6MtNWV8kJ4LizUpPnH3pQzs=; b=PTOmvbG3BdVNbYHNdVSmdUJ/ppgZru5ykDyn6YiD3ydc+x0DvCZyKORYypNKiQUeDBssxuC6DRiZneZ41ZcOj28WNzldKEwPVwKf3p4Qkm6yh7cB7e/XAC75G/m/ggqaa7vPWkjmT8OkbUe4d7674ukz5Wllc0qMJ431gDp/feY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 165277846082471.23008156189474; Tue, 17 May 2022 02:07:40 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-301-4af8IJrROsent2VGcyXg3g-1; Tue, 17 May 2022 05:07:34 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7F7E418A0161; Tue, 17 May 2022 09:07:32 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 68CA940C1421; Tue, 17 May 2022 09:07:32 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id B3D1119452D2; Tue, 17 May 2022 09:07:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 007F11947B85 for ; Tue, 17 May 2022 09:07:30 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id E6308156D12C; Tue, 17 May 2022 09:07:30 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id 68E95156D120 for ; Tue, 17 May 2022 09:07:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778459; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=i7Ac84Zo30KNd4C+jVHj6MtNWV8kJ4LizUpPnH3pQzs=; b=iLEgrOkBg832Cbtwmi6fG1LxW1vQl+ikv1UAM5AJngEKnCy8JFVQsqVbYHmu2NOMvPuDux ViBMEXEWc2bfQcK3SShTR7h0J5V8hurlba5hCqeIzlmeA/y06BIN30YrmL4++onf5PfATZ 52BFB89utyXM27nz3UAaFv0m+1SC1AE= X-MC-Unique: 4af8IJrROsent2VGcyXg3g-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 3/9] qemu: Convert passing of 'tapfds' to 'qemuFDPassDirect' Date: Tue, 17 May 2022 11:07:20 +0200 Message-Id: <75827e3f1f3cb206ecc2a8f839ccc210047a9d44.1652778351.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778462210100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 15 +++++---------- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_domain.h | 2 +- src/qemu/qemu_hotplug.c | 4 ++-- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index ed7f0eafd2..bab2b0a99b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4244,7 +4244,7 @@ qemuBuildHostNetProps(virDomainNetDef *net) if (netpriv->tapfds) { nfds =3D 0; for (n =3D netpriv->tapfds; n; n =3D n->next) { - virBufferAsprintf(&buf, "%s:", qemuFDPassGetPath(n->data)); + virBufferAsprintf(&buf, "%s:", qemuFDPassDirectGetPath(n->= data)); nfds++; } @@ -8738,16 +8738,13 @@ qemuBuildInterfaceConnect(virDomainObj *vm, /* 'vhostfd' is set to true in all cases when we need to process tapfd= s */ if (vhostfd) { - g_autofree char *prefix =3D g_strdup_printf("tapfd-%s", net->info.= alias); size_t i; for (i =3D 0; i < tapfdSize; i++) { - g_autoptr(qemuFDPass) pass =3D qemuFDPassNewDirect(prefix, pri= v); - g_autofree char *suffix =3D g_strdup_printf("%zu", i); + g_autofree char *name =3D g_strdup_printf("tapfd-%s%zu", net->= info.alias, i); int fd =3D tapfd[i]; /* we want to keep the array intact for s= ecurity labeling*/ - qemuFDPassAddFD(pass, &fd, suffix); - netpriv->tapfds =3D g_slist_prepend(netpriv->tapfds, g_steal_p= ointer(&pass)); + netpriv->tapfds =3D g_slist_prepend(netpriv->tapfds, qemuFDPas= sDirectNew(name, &fd)); } netpriv->tapfds =3D g_slist_reverse(netpriv->tapfds); @@ -8911,10 +8908,8 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, virNetDevSetMTU(net->ifname, net->mtu) < 0) goto cleanup; - for (n =3D netpriv->tapfds; n; n =3D n->next) { - if (qemuFDPassTransferCommand(n->data, cmd) < 0) - return -1; - } + for (n =3D netpriv->tapfds; n; n =3D n->next) + qemuFDPassDirectTransferCommand(n->data, cmd); for (n =3D netpriv->vhostfds; n; n =3D n->next) qemuFDPassDirectTransferCommand(n->data, cmd); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index eba556a6e7..f83ee55246 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1054,7 +1054,7 @@ qemuDomainNetworkPrivateClearFDs(qemuDomainNetworkPri= vate *priv) g_clear_pointer(&priv->slirpfd, qemuFDPassFree); g_clear_pointer(&priv->vdpafd, qemuFDPassFree); g_slist_free_full(g_steal_pointer(&priv->vhostfds), (GDestroyNotify) q= emuFDPassDirectFree); - g_slist_free_full(g_steal_pointer(&priv->tapfds), (GDestroyNotify) qem= uFDPassFree); + g_slist_free_full(g_steal_pointer(&priv->tapfds), (GDestroyNotify) qem= uFDPassDirectFree); } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 9475c30e0c..521df8ca01 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -404,7 +404,7 @@ struct _qemuDomainNetworkPrivate { /* file descriptor transfer helpers */ qemuFDPass *slirpfd; - GSList *tapfds; + GSList *tapfds; /* qemuFDPassDirect */ GSList *vhostfds; /* qemuFDPassDirect */ qemuFDPass *vdpafd; }; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index da0896a671..4ebb3c5818 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1373,7 +1373,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, qemuDomainObjEnterMonitor(driver, vm); for (n =3D netpriv->tapfds; n; n =3D n->next) { - if (qemuFDPassTransferMonitor(n->data, priv->mon) < 0) { + if (qemuFDPassDirectTransferMonitor(n->data, priv->mon) < 0) { qemuDomainObjExitMonitor(vm); goto cleanup; } @@ -1525,7 +1525,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, netdev_name); for (n =3D netpriv->tapfds; n; n =3D n->next) - qemuFDPassTransferMonitorRollback(n->data, priv->mon); + qemuFDPassDirectTransferMonitorRollback(n->data, priv->mon); for (n =3D netpriv->vhostfds; n; n =3D n->next) qemuFDPassDirectTransferMonitorRollback(n->data, priv->mon); --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778492; cv=none; d=zohomail.com; s=zohoarc; b=F/q4DyJ6A/dGvNQ+rpoDz4jqHrUNOW870sAS9KVzlnfnxhagAsuuKaBCI7U83RBahR7M6UkRDaz9nK18Cnznp/xJyAxwRtdFVj+EbByU3n+q0iONf21/xtAj2D4jjMZgXaO5ml+Bsh3f4c/eiyQ+Q8cK37P0mD992JF5fG2YSOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778492; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vGl8wxUNLiN90e+8GLMUulXi4HRc73g2gEwuWW7RGbA=; b=L8lGACda4EGxSiqXi6K6AcXrAFDRlQ87dZnUOAUEFokmk/OFpGDLiSHJrswnTXFF3AKWHeUq5Do5ieEIWrnGXO76G0k9Cp7Ab1jNUrwjS5pC9JYJZJuvuiu9gtxcWwcu6XiPnBGFyP5nhXcB5+wXyrhiaNmnK0u4C3SYNfTfQTo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1652778492404521.6431993548111; Tue, 17 May 2022 02:08:12 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-392-dxvG8Cl3Ojm4GdRO7hfVUA-1; Tue, 17 May 2022 05:07:42 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C6F361D32367; Tue, 17 May 2022 09:07:39 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7087740CF8F5; Tue, 17 May 2022 09:07:39 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 33703194705F; Tue, 17 May 2022 09:07:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id EC35A194706D for ; Tue, 17 May 2022 09:07:31 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id BAB4C156D120; Tue, 17 May 2022 09:07:31 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id 49607156D12B for ; Tue, 17 May 2022 09:07:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778491; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=vGl8wxUNLiN90e+8GLMUulXi4HRc73g2gEwuWW7RGbA=; b=aXUSRdUXgUwmC2TpKGsNChN15zt1H+0pFj6Gws9K4OEQ44kcgKlOXJG3moTilNRJoi++Vk 2PT5U9h2E4t0I/cGcbHIxZh9h24C6I6VRAc9UQudewmcOPz+zKO5UqQCFU03g/LPabER5B LvcG8beqD+FR5xRnmLA/HFSJ4w2go3M= X-MC-Unique: dxvG8Cl3Ojm4GdRO7hfVUA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 4/9] qemu: Convert passing of 'slirpfd' to 'qemuFDPassDirect' Date: Tue, 17 May 2022 11:07:21 +0200 Message-Id: <846bade5008e48cc2110adb2b4d8a6e25ea4f79e.1652778351.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778494438100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 7 ++++--- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_domain.h | 2 +- src/qemu/qemu_hotplug.c | 2 +- src/qemu/qemu_slirp.c | 4 +--- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index bab2b0a99b..90a4b98e1e 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4325,7 +4325,7 @@ qemuBuildHostNetProps(virDomainNetDef *net) if (netpriv->slirpfd) { if (virJSONValueObjectAdd(&netprops, "s:type", "socket", - "s:fd", qemuFDPassGetPath(netpriv->s= lirpfd), + "s:fd", qemuFDPassDirectGetPath(netp= riv->slirpfd), NULL) < 0) return NULL; } else { @@ -8914,8 +8914,9 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, for (n =3D netpriv->vhostfds; n; n =3D n->next) qemuFDPassDirectTransferCommand(n->data, cmd); - if (qemuFDPassTransferCommand(netpriv->slirpfd, cmd) < 0 || - qemuFDPassTransferCommand(netpriv->vdpafd, cmd) < 0) + qemuFDPassDirectTransferCommand(netpriv->slirpfd, cmd); + + if (qemuFDPassTransferCommand(netpriv->vdpafd, cmd) < 0) return -1; if (!(hostnetprops =3D qemuBuildHostNetProps(net))) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index f83ee55246..c957b5296a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1051,7 +1051,7 @@ qemuDomainNetworkPrivateClearFDs(qemuDomainNetworkPri= vate *priv) if (!priv) return; - g_clear_pointer(&priv->slirpfd, qemuFDPassFree); + g_clear_pointer(&priv->slirpfd, qemuFDPassDirectFree); g_clear_pointer(&priv->vdpafd, qemuFDPassFree); g_slist_free_full(g_steal_pointer(&priv->vhostfds), (GDestroyNotify) q= emuFDPassDirectFree); g_slist_free_full(g_steal_pointer(&priv->tapfds), (GDestroyNotify) qem= uFDPassDirectFree); diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 521df8ca01..1547dec668 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -403,7 +403,7 @@ struct _qemuDomainNetworkPrivate { qemuSlirp *slirp; /* file descriptor transfer helpers */ - qemuFDPass *slirpfd; + qemuFDPassDirect *slirpfd; GSList *tapfds; /* qemuFDPassDirect */ GSList *vhostfds; /* qemuFDPassDirect */ qemuFDPass *vdpafd; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 4ebb3c5818..3504cd21ff 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1386,7 +1386,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, } } - if (qemuFDPassTransferMonitor(netpriv->slirpfd, priv->mon) < 0 || + if (qemuFDPassDirectTransferMonitor(netpriv->slirpfd, priv->mon) < 0 || qemuFDPassTransferMonitor(netpriv->vdpafd, priv->mon) < 0) { qemuDomainObjExitMonitor(vm); goto cleanup; diff --git a/src/qemu/qemu_slirp.c b/src/qemu/qemu_slirp.c index 618947b6c1..772ea582c5 100644 --- a/src/qemu/qemu_slirp.c +++ b/src/qemu/qemu_slirp.c @@ -352,9 +352,7 @@ qemuSlirpStart(virDomainObj *vm, slirp->pid =3D pid; - netpriv->slirpfd =3D qemuFDPassNewDirect(fdname, priv); - - qemuFDPassAddFD(netpriv->slirpfd, &slirp->fd[0], NULL); + netpriv->slirpfd =3D qemuFDPassDirectNew(fdname, &slirp->fd[0]); return 0; --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778461; cv=none; d=zohomail.com; s=zohoarc; b=JD8fG1EzgCWAkykpBumP0UpRo9XKmoCCHZqkhdReicO8I+fMOsTvJ067toAgus1EdD+nCeyutDUuQluQzMD+RGe69U1ow4eH2xCqoZdFCG4yV0h5Si0hi9UPp7uZmypbdx8XfkBI9heTMxx2hR5EzJM+X+zVBnhuczOEon+pX6A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778461; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oVGwuYWUtw0Ppij8s4FCA4H11ZmTzgcJDFjpd3rmrFs=; b=mAX//rwKYoq+55lU9g189hOfOXVt7R0tF7UgZf+B6rO+FdQQ96zuEtcrGcz39Vj7EiTb5xDdMP18DO7MXVCCUiyZTHxPEQBmXz1005/YDqdN6x/gXl67d788efIeblhuyTta4H470kBHQCaTqpaXK8mXz99ztSyuZig+kErjCrM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1652778461954638.0494308626344; Tue, 17 May 2022 02:07:41 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-437-n4XZxK0vOMqT3TQGG_N_WA-1; Tue, 17 May 2022 05:07:37 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5F8E53C11C6C; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4CC53400E122; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 11639194705F; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 9A2231947056 for ; Tue, 17 May 2022 09:07:32 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 8E263156D120; Tue, 17 May 2022 09:07:32 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id 11DB5156D12A for ; Tue, 17 May 2022 09:07:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778461; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=oVGwuYWUtw0Ppij8s4FCA4H11ZmTzgcJDFjpd3rmrFs=; b=GKIVpqw9I7b8ARwE9g+JRZm74XKV4WL12q/JICjqLUzzCAx7uFWTkyd4DMd4vfN8TMQO9a n7J4kru8JZllnpH3U3pIyBMJZHMhc1zYsWQQvm6fKuLIFm9JmtiEziatOSIRrUk4rAeHia 64o9flBFxBLlh4uEI9vfwu258MMpMRY= X-MC-Unique: n4XZxK0vOMqT3TQGG_N_WA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 5/9] qemu: Use 'qemuFDPassDirect' for 'unix' chardevs Date: Tue, 17 May 2022 11:07:22 +0200 Message-Id: <62505d073fcfc84635a90db889da09f265393bdb.1652778351.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778462231100002 Content-Type: text/plain; charset="utf-8" Unix socket chardevs with FD passing need to use the direct mode so we need to convert it to use qemuFDPassDirect. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 15 +++++++++------ src/qemu/qemu_domain.c | 1 + src/qemu/qemu_domain.h | 1 + src/qemu/qemu_hotplug.c | 5 +++-- src/qemu/qemu_monitor_json.c | 4 ++-- src/qemu/qemu_process.c | 5 ++--- tests/testutilsqemu.c | 26 +++++++++++--------------- 7 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 90a4b98e1e..828c7c38f5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1396,8 +1396,8 @@ qemuBuildChardevStr(const virDomainChrSourceDef *dev, case VIR_DOMAIN_CHR_TYPE_UNIX: virBufferAsprintf(&buf, "socket,id=3D%s", charAlias); - if (chrSourcePriv->sourcefd) { - virBufferAsprintf(&buf, ",fd=3D%s", qemuFDPassGetPath(chrSourc= ePriv->sourcefd)); + if (chrSourcePriv->directfd) { + virBufferAsprintf(&buf, ",fd=3D%s", qemuFDPassDirectGetPath(ch= rSourcePriv->directfd)); } else { virBufferAddLit(&buf, ",path=3D"); virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); @@ -1513,9 +1513,13 @@ qemuBuildChardevCommand(virCommand *cmd, break; case VIR_DOMAIN_CHR_TYPE_FILE: - case VIR_DOMAIN_CHR_TYPE_UNIX: if (qemuFDPassTransferCommand(chrSourcePriv->sourcefd, cmd) < 0) return -1; + + break; + + case VIR_DOMAIN_CHR_TYPE_UNIX: + qemuFDPassDirectTransferCommand(chrSourcePriv->directfd, cmd); break; case VIR_DOMAIN_CHR_TYPE_NULL: @@ -4943,12 +4947,11 @@ qemuBuildVideoCommandLine(virCommand *cmd, qemuDomainVideoPrivate *videopriv =3D QEMU_DOMAIN_VIDEO_PRIVAT= E(video); g_autoptr(virDomainChrSourceDef) chrsrc =3D virDomainChrSource= DefNew(priv->driver->xmlopt); g_autofree char *chrAlias =3D qemuDomainGetVhostUserChrAlias(v= ideo->info.alias); + g_autofree char *name =3D g_strdup_printf("%s-vhost-user", vid= eo->info.alias); qemuDomainChrSourcePrivate *chrsrcpriv =3D QEMU_DOMAIN_CHR_SOU= RCE_PRIVATE(chrsrc); chrsrc->type =3D VIR_DOMAIN_CHR_TYPE_UNIX; - chrsrcpriv->sourcefd =3D qemuFDPassNewDirect(video->info.alias= , priv); - - qemuFDPassAddFD(chrsrcpriv->sourcefd, &videopriv->vhost_user_f= d, "-vhost-user"); + chrsrcpriv->directfd =3D qemuFDPassDirectNew(name, &videopriv-= >vhost_user_fd); if (qemuBuildChardevCommand(cmd, chrsrc, chrAlias, priv->qemuC= aps) < 0) return -1; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index c957b5296a..29a09bb7f7 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -916,6 +916,7 @@ qemuDomainChrSourcePrivateClearFDPass(qemuDomainChrSour= cePrivate *priv) g_clear_pointer(&priv->sourcefd, qemuFDPassFree); g_clear_pointer(&priv->logfd, qemuFDPassFree); + g_clear_pointer(&priv->directfd, qemuFDPassDirectFree); } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 1547dec668..547d85b5f9 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -350,6 +350,7 @@ struct _qemuDomainChrSourcePrivate { qemuFDPass *sourcefd; qemuFDPass *logfd; + qemuFDPassDirect *directfd; bool wait; /* wait for incoming connections on chardev */ char *tlsCertPath; /* path to certificates if TLS is requested */ diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 3504cd21ff..15ffcdc6ce 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2133,11 +2133,12 @@ qemuDomainAttachChrDevice(virQEMUDriver *driver, if (qemuProcessPrepareHostBackendChardevHotplug(vm, dev) < 0) goto cleanup; - if (charpriv->sourcefd || charpriv->logfd) { + if (charpriv->sourcefd || charpriv->logfd || charpriv->directfd) { qemuDomainObjEnterMonitor(driver, vm); if (qemuFDPassTransferMonitor(charpriv->sourcefd, priv->mon) < 0 || - qemuFDPassTransferMonitor(charpriv->logfd, priv->mon) < 0) + qemuFDPassTransferMonitor(charpriv->logfd, priv->mon) < 0 || + qemuFDPassDirectTransferMonitor(charpriv->directfd, priv->mon)= < 0) goto exit_monitor; qemuDomainObjExitMonitor(vm); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index a092bf420f..523a4326da 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6724,8 +6724,8 @@ qemuMonitorJSONAttachCharDevGetProps(const char *chrI= D, waitval =3D VIR_TRISTATE_BOOL_NO; } - if (chrSourcePriv->sourcefd) { - if (!(addr =3D qemuMonitorJSONBuildFDSocketAddress(qemuFDP= assGetPath(chrSourcePriv->sourcefd)))) + if (chrSourcePriv->directfd) { + if (!(addr =3D qemuMonitorJSONBuildFDSocketAddress(qemuFDP= assDirectGetPath(chrSourcePriv->directfd)))) return NULL; } else { if (!(addr =3D qemuMonitorJSONBuildUnixSocketAddress(chr->= data.nix.path))) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 07e467d01e..e83d1fff27 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6876,6 +6876,7 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDevi= ceDef *dev, case VIR_DOMAIN_CHR_TYPE_UNIX: if (chardev->data.nix.listen) { + g_autofree char *name =3D g_strdup_printf("%s-source", devalia= s); VIR_AUTOCLOSE sourcefd =3D -1; if (qemuSecuritySetSocketLabel(data->priv->driver->securityMan= ager, data->def) < 0) @@ -6887,9 +6888,7 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDevi= ceDef *dev, sourcefd < 0) return -1; - charpriv->sourcefd =3D qemuFDPassNewDirect(devalias, data->pri= v); - - qemuFDPassAddFD(charpriv->sourcefd, &sourcefd, "-source"); + charpriv->directfd =3D qemuFDPassDirectNew(name, &sourcefd); } break; diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 89fdf1d6fe..7ae88c9b8d 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -1019,7 +1019,6 @@ testQemuPrepareHostBackendChardevOne(virDomainDeviceD= ef *dev, qemuDomainChrSourcePrivate *charpriv =3D QEMU_DOMAIN_CHR_SOURCE_PRIVAT= E(chardev); int fakesourcefd =3D -1; const char *devalias =3D NULL; - bool usefdset =3D true; if (vm) priv =3D vm->privateData; @@ -1061,13 +1060,22 @@ testQemuPrepareHostBackendChardevOne(virDomainDevic= eDef *dev, case VIR_DOMAIN_CHR_TYPE_FILE: fakesourcefd =3D 1750; + + if (fcntl(fakesourcefd, F_GETFD) !=3D -1) + abort(); + + charpriv->sourcefd =3D qemuFDPassNew(devalias, priv); + qemuFDPassAddFD(charpriv->sourcefd, &fakesourcefd, "-source"); break; case VIR_DOMAIN_CHR_TYPE_UNIX: - if (chardev->data.nix.listen) + if (chardev->data.nix.listen) { + g_autofree char *name =3D g_strdup_printf("%s-source", devalia= s); fakesourcefd =3D 1729; - usefdset =3D false; + charpriv->directfd =3D qemuFDPassDirectNew(name, &fakesourcefd= ); + } + break; case VIR_DOMAIN_CHR_TYPE_NMDM: @@ -1075,18 +1083,6 @@ testQemuPrepareHostBackendChardevOne(virDomainDevice= Def *dev, break; } - if (fakesourcefd !=3D -1) { - if (fcntl(fakesourcefd, F_GETFD) !=3D -1) - abort(); - - if (usefdset) - charpriv->sourcefd =3D qemuFDPassNew(devalias, priv); - else - charpriv->sourcefd =3D qemuFDPassNewDirect(devalias, priv); - - qemuFDPassAddFD(charpriv->sourcefd, &fakesourcefd, "-source"); - } - if (chardev->logfile) { int fd =3D 1751; --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778491; cv=none; d=zohomail.com; s=zohoarc; b=hVDLyTt4X1kgk8Uasnx88AOvOkMLsfGqDT6mKy/A5ixkMGML1b2daFM2/H4DXU9QzZ/JlULgZGOJD2ITqh/Rl95K4Nj9QgawbVq6MiA36I5XaqBhsrFVFDUSaT7g9c8x4mw0nydGnGpi4xP0wsbdI/q//iqCgeubAs4gc2A1yJo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778491; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tadNXsxXYI6gNj0BML3n2/BFZ4Ar1UoTLdsKr18lRro=; b=MMcbaN9ziXI2yh8jrrzgnEBH0xcYzQr1ZfOXmxA7CHJGecW7ai3ETvaAPmrpC7Hc8cbbouNK7YEeGkhub8tW79SIwacrOf1BZydGe0safqG7WzH4H5a3nQFTKt1z6iOpey9snv5rLmlZwl3wm6Cs1u6Wc0J053BRWm9Xo1c81Ow= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1652778491344522.6616093756534; Tue, 17 May 2022 02:08:11 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-325-6WNdXiBrOLm-zFM0qZ9RCA-1; Tue, 17 May 2022 05:07:38 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D07781C161CC; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id BD0F8156D12A; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 66F7E194707F; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 8DFD41947056 for ; Tue, 17 May 2022 09:07:33 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 699B4156D120; Tue, 17 May 2022 09:07:33 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id E2DE1156D12B for ; Tue, 17 May 2022 09:07:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778490; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=tadNXsxXYI6gNj0BML3n2/BFZ4Ar1UoTLdsKr18lRro=; b=KebN0otL9cCuLhPiSJD9QUWcH4auVMDORubHB6MSNLP1brBnkvmpjQ5EcHbDi6D4VXjyv9 daCv1kFrrN07cwB9NphWDPSHoCsqrhSCXjutCDcCe5RyDDMJL5hZ87tEKjO4kPcYLTrCHx ZLCgdRQ2O7nErc5nfbhTHPGmBJx8CK0= X-MC-Unique: 6WNdXiBrOLm-zFM0qZ9RCA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 6/9] qemuFDPassValidate: Don't validate file descriptors Date: Tue, 17 May 2022 11:07:23 +0200 Message-Id: <0f3a4f9e21a1359c75d9e6858883219d1fc3cedf.1652778351.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778492406100001 Content-Type: text/plain; charset="utf-8" The callers adding the FDs are validating them regardless so this check was redundant. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_fd.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/qemu/qemu_fd.c b/src/qemu/qemu_fd.c index 442f92df2f..fc9fecbb0e 100644 --- a/src/qemu/qemu_fd.c +++ b/src/qemu/qemu_fd.c @@ -68,8 +68,6 @@ qemuFDPassFree(qemuFDPass *fdpass) static int qemuFDPassValidate(qemuFDPass *fdpass) { - size_t i; - if (!fdpass->useFDSet && fdpass->nfds > 1) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -77,14 +75,6 @@ qemuFDPassValidate(qemuFDPass *fdpass) return -1; } - for (i =3D 0; i < fdpass->nfds; i++) { - if (fdpass->fds[i].fd < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("invalid file descriptor")); - return -1; - } - } - return 0; } --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778466; cv=none; d=zohomail.com; s=zohoarc; b=iBonzAnBysTTJPY08oYC/2Edjd6sHEaN74KN9QLyqWuR+/Kw6m8oLYy3+EjpKmXz/zx5OantgkREFpD/vOQxmk/NU2rhd41it5P3cnqFTmjeuvM3Tj+85djpuKCkcSwrpFcKEwCg2AsZl7V0KKN9YXZYlDfhRS2DaT2IURic/3s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778466; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=00QIAy1NL8m+fIrXNgp5O8TvjMEKQkHisH7m/aIvg9U=; b=W0BCPUKzQXAKSNBxe5K8aRI1wM/xByJuqAzpx5YWO0VfwhQsF3Ap9buq1Me9adl0MTBrxtk+mC42S8DPDfkzSoMyCeT3sE8Q/lDJ+Nafqkw22mdBDlCN4aUFhZn6+ol0sM1xhcQVAKq9TyqyMivSDx8fSGPtwR/JVN1HytfnNT8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1652778466155352.22191261803755; Tue, 17 May 2022 02:07:46 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-439-0SNU2qjkOXih-gsPiIVzSg-1; Tue, 17 May 2022 05:07:37 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A93DE3C11CCD; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 93CC7156D12B; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 61200194707C; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4F77C1947056 for ; Tue, 17 May 2022 09:07:34 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 44CFA156D12A; Tue, 17 May 2022 09:07:34 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id C15B7156D120 for ; Tue, 17 May 2022 09:07:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778465; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=00QIAy1NL8m+fIrXNgp5O8TvjMEKQkHisH7m/aIvg9U=; b=YDK5kPSDsa1NmIQc32d1M4+uDmaMqZr/kKwZAMsqTYFSJyFXsTx9RN/OmDR8gTw0pKgkPY ZeU8r08WAFiGGfZv+hdjQi5xkPYkY5yWJKuu1Yz+iXYJ9/18XFkjKSOLbvC8Lf/AnJmYJT OiEmqG5n43XBuxtIuHBxf/x/hpe3nw8= X-MC-Unique: 0SNU2qjkOXih-gsPiIVzSg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 7/9] qemu: fd: Remove support for 'direct' fd passing from 'qemuFDPass' Date: Tue, 17 May 2022 11:07:24 +0200 Message-Id: <403b0edd43bbf298120b41a9c5ba1646cb6e5180.1652778351.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778468260100001 Content-Type: text/plain; charset="utf-8" This finishes the separation of the fdset and direct helpers. Remove 'qemuFDPassNewDirect' and all internals which were applicable only in direct mode. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_fd.c | 116 ++++++++------------------------------------- 1 file changed, 19 insertions(+), 97 deletions(-) diff --git a/src/qemu/qemu_fd.c b/src/qemu/qemu_fd.c index fc9fecbb0e..cff2428727 100644 --- a/src/qemu/qemu_fd.c +++ b/src/qemu/qemu_fd.c @@ -34,7 +34,6 @@ struct qemuFDPassFD { }; struct _qemuFDPass { - bool useFDSet; unsigned int fdSetID; size_t nfds; struct qemuFDPassFD *fds; @@ -65,20 +64,6 @@ qemuFDPassFree(qemuFDPass *fdpass) } -static int -qemuFDPassValidate(qemuFDPass *fdpass) -{ - if (!fdpass->useFDSet && - fdpass->nfds > 1) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("direct FD passing supports only 1 file descripto= r")); - return -1; - } - - return 0; -} - - /** * qemuFDPassNew: * @prefix: prefix used for naming the passed FDs @@ -99,7 +84,6 @@ qemuFDPassNew(const char *prefix, qemuFDPass *fdpass =3D g_new0(qemuFDPass, 1); fdpass->prefix =3D g_strdup(prefix); - fdpass->useFDSet =3D true; if (priv) { fdpass->fdSetID =3D qemuDomainFDSetIDNew(priv); @@ -112,34 +96,6 @@ qemuFDPassNew(const char *prefix, } -/** - * qemuFDPassNewDirect: - * @prefix: prefix used for naming the passed FDs - * @dompriv: qemu domain private data - * - * Create a new helper object for passing FDs to QEMU. - * - * The instance created via 'qemuFDPassNewDirect' will result in the older - * approach of directly using FD number on the commandline and 'getfd' - * QMP command. - * - * Non-test uses must pass a valid @dompriv. - * - * @prefix is used for naming the FD if needed and is later referenced when - * removing the FDSet via monitor. - */ -qemuFDPass * -qemuFDPassNewDirect(const char *prefix, - void *dompriv G_GNUC_UNUSED) -{ - qemuFDPass *fdpass =3D g_new0(qemuFDPass, 1); - - fdpass->prefix =3D g_strdup(prefix); - - return fdpass; -} - - /** * qemuFDPassAddFD: * @fdpass: The fd passing helper struct @@ -165,11 +121,6 @@ qemuFDPassAddFD(qemuFDPass *fdpass, newfd.opaque =3D g_strdup_printf("%s%s", fdpass->prefix, NULLSTR_EMPTY= (suffix)); - if (!fdpass->useFDSet) { - g_free(fdpass->path); - fdpass->path =3D g_strdup(newfd.opaque); - } - VIR_APPEND_ELEMENT(fdpass->fds, fdpass->nfds, newfd); } @@ -191,28 +142,15 @@ qemuFDPassTransferCommand(qemuFDPass *fdpass, if (!fdpass) return 0; - if (qemuFDPassValidate(fdpass) < 0) - return -1; - for (i =3D 0; i < fdpass->nfds; i++) { - virCommandPassFD(cmd, fdpass->fds[i].fd, VIR_COMMAND_PASS_FD_CLOSE= _PARENT); - - if (fdpass->useFDSet) { - g_autofree char *arg =3D NULL; - - arg =3D g_strdup_printf("set=3D%u,fd=3D%d,opaque=3D%s", - fdpass->fdSetID, - fdpass->fds[i].fd, - fdpass->fds[i].opaque); - - virCommandAddArgList(cmd, "-add-fd", arg, NULL); - } else { - /* for monitor use the older FD passing needs the FD number */ - g_free(fdpass->path); - fdpass->path =3D g_strdup_printf("%d", fdpass->fds[i].fd); - } + g_autofree char *arg =3D g_strdup_printf("set=3D%u,fd=3D%d,opaque= =3D%s", + fdpass->fdSetID, + fdpass->fds[i].fd, + fdpass->fds[i].opaque); + virCommandPassFD(cmd, fdpass->fds[i].fd, VIR_COMMAND_PASS_FD_CLOSE= _PARENT); fdpass->fds[i].fd =3D -1; + virCommandAddArgList(cmd, "-add-fd", arg, NULL); } return 0; @@ -231,42 +169,30 @@ int qemuFDPassTransferMonitor(qemuFDPass *fdpass, qemuMonitor *mon) { + g_autoptr(qemuMonitorFdsets) fdsets =3D NULL; size_t i; if (!fdpass) return 0; - if (qemuFDPassValidate(fdpass) < 0) + if (qemuMonitorQueryFdsets(mon, &fdsets) < 0) return -1; - if (fdpass->useFDSet) { - g_autoptr(qemuMonitorFdsets) fdsets =3D NULL; - if (qemuMonitorQueryFdsets(mon, &fdsets) < 0) + for (i =3D 0; i < fdsets->nfdsets; i++) { + if (fdsets->fdsets[i].id =3D=3D fdpass->fdSetID) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("fdset '%u' is already in use by qemu"), + fdpass->fdSetID); return -1; - - for (i =3D 0; i < fdsets->nfdsets; i++) { - if (fdsets->fdsets[i].id =3D=3D fdpass->fdSetID) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("fdset '%u' is already in use by qemu"), - fdpass->fdSetID); - return -1; - } } } for (i =3D 0; i < fdpass->nfds; i++) { - if (fdpass->useFDSet) { - if (qemuMonitorAddFileHandleToSet(mon, - fdpass->fds[i].fd, - fdpass->fdSetID, - fdpass->fds[i].opaque) < 0) - return -1; - } else { - if (qemuMonitorSendFileHandle(mon, - fdpass->fds[i].opaque, - fdpass->fds[i].fd) < 0) - return -1; - } + if (qemuMonitorAddFileHandleToSet(mon, + fdpass->fds[i].fd, + fdpass->fdSetID, + fdpass->fds[i].opaque) < 0) + return -1; VIR_FORCE_CLOSE(fdpass->fds[i].fd); fdpass->passed =3D true; @@ -290,11 +216,7 @@ qemuFDPassTransferMonitorRollback(qemuFDPass *fdpass, if (!fdpass || !fdpass->passed) return; - if (fdpass->useFDSet) { - ignore_value(qemuMonitorRemoveFdset(mon, fdpass->fdSetID)); - } else { - ignore_value(qemuMonitorCloseFileHandle(mon, fdpass->fds[0].opaque= )); - } + ignore_value(qemuMonitorRemoveFdset(mon, fdpass->fdSetID)); } --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778463; cv=none; d=zohomail.com; s=zohoarc; b=RxjBLifnm83zmRqi+omN0WaEijUng23hRg00e2y2VpOh7Rgwr/8Fq1LC6Y+bpVIqmPBUmJukpTusjal5qFCG7QdTzryeaK50WpsRUkXx7OsEghSHN7Rk4yeF6xjvXKM044HBCetfF4uQYivFjfIwkOl0ufOYXLkoJy+3zsRfDm8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778463; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=P79VnF9Jyuz+YWDemFeQ7bpc5qgsWvX9xC10ze+qGMI=; b=f6JrQRCOU4917xMXShIId7VS/sBl8I+v4eXipLUo68aJL1QnWTiDYsyoT0uwWWGcdP80YHTYjefk0UEVYelX3t6FJzqTk92ezkOpzN/zzyYF14Q3YLuRCwA7ay67Q6KIdcfm+ZHfTOvvAE0YukHj8w8/AaBiYkNWaOUySKobdnc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 16527784637431018.9601662248294; Tue, 17 May 2022 02:07:43 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-442-SBuAzBsfPWuE1qfmssuczQ-1; Tue, 17 May 2022 05:07:40 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3EE6086B8B5; Tue, 17 May 2022 09:07:37 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 29A7240CF8F0; Tue, 17 May 2022 09:07:37 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id DA0891947070; Tue, 17 May 2022 09:07:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 29A571947070 for ; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 1A9A4156D12B; Tue, 17 May 2022 09:07:35 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id 97829156D120 for ; Tue, 17 May 2022 09:07:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778462; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=P79VnF9Jyuz+YWDemFeQ7bpc5qgsWvX9xC10ze+qGMI=; b=iwP6Wg+sf/WRdLuHpyMiWs2phXQZRe7oWab++kDhZyiLUYGj3EklHwsjmI4PD5835l6pkE FrJ+zNMMugTp/96oxZdInylp3vNLzYSTsYWbPDOR0wJXNiFbuRZdWHM+RcU5SojHlNQPLW 5G4ZUTVNTW1Rs5mRz8S0itgNVwNkdmM= X-MC-Unique: SBuAzBsfPWuE1qfmssuczQ-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 8/9] qemuFDPassTransferCommand: Remove return value Date: Tue, 17 May 2022 11:07:25 +0200 Message-Id: <4d33e7713e686c6a1d1bab9f3711b1281cc50acd.1652778351.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778464238100005 Content-Type: text/plain; charset="utf-8" Now that the 'direct' mode was separated and thus we don't have any possible error case we can stop returning any values and simplify callers. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 18 +++++------------- src/qemu/qemu_fd.c | 6 ++---- src/qemu/qemu_fd.h | 2 +- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 828c7c38f5..114c737b3d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1513,9 +1513,7 @@ qemuBuildChardevCommand(virCommand *cmd, break; case VIR_DOMAIN_CHR_TYPE_FILE: - if (qemuFDPassTransferCommand(chrSourcePriv->sourcefd, cmd) < 0) - return -1; - + qemuFDPassTransferCommand(chrSourcePriv->sourcefd, cmd); break; case VIR_DOMAIN_CHR_TYPE_UNIX: @@ -1543,8 +1541,7 @@ qemuBuildChardevCommand(virCommand *cmd, return -1; } - if (qemuFDPassTransferCommand(chrSourcePriv->logfd, cmd) < 0) - return -1; + qemuFDPassTransferCommand(chrSourcePriv->logfd, cmd); if (!(charstr =3D qemuBuildChardevStr(dev, charAlias))) return -1; @@ -8918,9 +8915,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, qemuFDPassDirectTransferCommand(n->data, cmd); qemuFDPassDirectTransferCommand(netpriv->slirpfd, cmd); - - if (qemuFDPassTransferCommand(netpriv->vdpafd, cmd) < 0) - return -1; + qemuFDPassTransferCommand(netpriv->vdpafd, cmd); if (!(hostnetprops =3D qemuBuildHostNetProps(net))) goto cleanup; @@ -9810,11 +9805,8 @@ qemuBuildTPMCommandLine(virCommand *cmd, return -1; } - if (qemuFDPassTransferCommand(passtpm, cmd) < 0) - return -1; - - if (qemuFDPassTransferCommand(passcancel, cmd) < 0) - return -1; + qemuFDPassTransferCommand(passtpm, cmd); + qemuFDPassTransferCommand(passcancel, cmd); if (!(tpmdevstr =3D qemuBuildTPMBackendStr(tpm, passtpm, passcancel))) return -1; diff --git a/src/qemu/qemu_fd.c b/src/qemu/qemu_fd.c index cff2428727..b7dd66bdc7 100644 --- a/src/qemu/qemu_fd.c +++ b/src/qemu/qemu_fd.c @@ -133,14 +133,14 @@ qemuFDPassAddFD(qemuFDPass *fdpass, * Pass the fds in @fdpass to a commandline object @cmd. @fdpass may be NU= LL * in which case this is a no-op. */ -int +void qemuFDPassTransferCommand(qemuFDPass *fdpass, virCommand *cmd) { size_t i; if (!fdpass) - return 0; + return; for (i =3D 0; i < fdpass->nfds; i++) { g_autofree char *arg =3D g_strdup_printf("set=3D%u,fd=3D%d,opaque= =3D%s", @@ -152,8 +152,6 @@ qemuFDPassTransferCommand(qemuFDPass *fdpass, fdpass->fds[i].fd =3D -1; virCommandAddArgList(cmd, "-add-fd", arg, NULL); } - - return 0; } diff --git a/src/qemu/qemu_fd.h b/src/qemu/qemu_fd.h index dbb4ab0aa5..6f165b6be9 100644 --- a/src/qemu/qemu_fd.h +++ b/src/qemu/qemu_fd.h @@ -39,7 +39,7 @@ qemuFDPassAddFD(qemuFDPass *fdpass, int *fd, const char *suffix); -int +void qemuFDPassTransferCommand(qemuFDPass *fdpass, virCommand *cmd); --=20 2.35.3 From nobody Mon May 6 14:31:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1652778487; cv=none; d=zohomail.com; s=zohoarc; b=RVOLPf+glLndDQd/pz84UuZSM2wza9TdQJtSc+WX1ah2DcHpuybe68K0lFpHA7FM8Ft34wqtFGHijDRe8w95W/J/bQfa6HowLLXREJwI0nAnRL/EjNx7VeTjO5nRtnH3X3Qce7m8sFWi4LiclQJ2v93JAr1hRQvSgyxMdXfw2XQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652778487; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jws3hnD7w1b5wHQ1oeIdDU2BSD0HECoeDUDtJ1nygd4=; b=g8g6Q8PijAWfS71OUxoJQwOitIZhqaKzxQgy7f+M0bGlW6yimdcU2CrsQoPbBvlV+11xR0sVhQlq6ghEsmyb6SVJZeF+DyMICSoFQ7GZ1l/tUVaaUYhYyStuC5rv7BedMqNjJveCV29UNoEPni06Mo1C7aQUz/Y0dYwadBKUwpg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 165277848766467.64598760527667; Tue, 17 May 2022 02:08:07 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-44-JFRHbg6uOeOeqmEvNXgPUw-1; Tue, 17 May 2022 05:07:40 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3D5371C3E9A9; Tue, 17 May 2022 09:07:37 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 29593492C14; Tue, 17 May 2022 09:07:37 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id CFE81194705F; Tue, 17 May 2022 09:07:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2B9741947063 for ; Tue, 17 May 2022 09:07:36 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 0A1DB156D12E; Tue, 17 May 2022 09:07:36 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id 851F7156D120 for ; Tue, 17 May 2022 09:07:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652778486; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=jws3hnD7w1b5wHQ1oeIdDU2BSD0HECoeDUDtJ1nygd4=; b=Id0dPm25X4tiXVpmb+ds7D61PRQKH99UpK0nUeGcVZnGPiTWsvltWbEihs0RPJB5TXBu1r YVseyn2FLiBGYhcbcoVZr/cVELLDcgqRm8qxytKJ5dyQ9K9DfUp5+SthXkbuX2K7E2LFCT Y4gG3r9Mex6Gfsh1CauOJPLiTT24rAY= X-MC-Unique: JFRHbg6uOeOeqmEvNXgPUw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 9/9] qemu: fd: Fix documentation for FD set related functions Date: Tue, 17 May 2022 11:07:26 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1652778488417100005 Content-Type: text/plain; charset="utf-8" When dealing with fdsets only we don't need to pass the FD first as we now generate fdset name directly. Also there are no more caveats in passing multiple FDs. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_fd.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_fd.c b/src/qemu/qemu_fd.c index b7dd66bdc7..266177b496 100644 --- a/src/qemu/qemu_fd.c +++ b/src/qemu/qemu_fd.c @@ -102,9 +102,8 @@ qemuFDPassNew(const char *prefix, * @fd: File descriptor to pass * @suffix: Name suffix for the file descriptor name * - * Adds @fd to be passed to qemu when transferring @fdpass to qemu. When @= fdpass - * is configured to use FD set mode, multiple file descriptors can be pass= ed by - * calling this function repeatedly. + * Adds @fd to be passed to qemu when transferring @fdpass to qemu. + * Multiple file descriptors can be passed by calling this function repeat= edly. * * @suffix is used to build the name of the file descriptor by concatenati= ng * it with @prefix passed to qemuFDPassNew. @suffix may be NULL, in which = case @@ -223,8 +222,6 @@ qemuFDPassTransferMonitorRollback(qemuFDPass *fdpass, * @fdpass: The fd passing helper struct * * Returns the path/fd name that is used in qemu to refer to the passed FD. - * Note that it's only valid to call this function after @fdpass was alrea= dy - * transferred to the command or monitor. */ const char * qemuFDPassGetPath(qemuFDPass *fdpass) --=20 2.35.3