From nobody Mon Feb 9 03:48:23 2026 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=1644422582; cv=none; d=zohomail.com; s=zohoarc; b=UHaz6eWu2Z4MzYu4YHabcAHbsogQIZqUHMIDOhfDcFfSAHVCOFKcrXxAzwFwaT1rQ28o7cjodlH+fbROWZvTJkcA9zcXE9lvGmGy9nevyAoZy0hdMFHTndmPJzkrBCkw73Cv1GdF55T8eEByi/4KT9+zmotAnmGAJtTdmRvkXuo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644422582; 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=GLImDwq03ouHPnp/nWoB9am2ZsslPxX8VHU0UFcUs0U=; b=aWXVU9zP2FSmy6bigoX/rbTZWQVX+LK8ayC8mt2acy2XrPxiF/7mBXa7dKQBYmQOGdCIjgxIoCMlh+h+gcRfIglWWk5I1UlpYBaRFV9jHwvi0FlFAzsPevhR+WINT190ddQC/cnowgt1IoJ8bXInC9soiKcXrHmJdhQP1jxwCGI= 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 1644422582802124.2732580100917; Wed, 9 Feb 2022 08:03:02 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-615-Je0kwpn7Mha4yR8HqGRTdQ-1; Wed, 09 Feb 2022 11:02:45 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AD4CD1091DA7; Wed, 9 Feb 2022 16:02:38 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 52B3584729; Wed, 9 Feb 2022 16:02:38 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A965A1809CB8; Wed, 9 Feb 2022 16:02:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 219G2Zud012222 for ; Wed, 9 Feb 2022 11:02:35 -0500 Received: by smtp.corp.redhat.com (Postfix) id 8CE097DE42; Wed, 9 Feb 2022 16:02:35 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.41]) by smtp.corp.redhat.com (Postfix) with ESMTP id EF80E7DE4B for ; Wed, 9 Feb 2022 16:02:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644422582; 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=GLImDwq03ouHPnp/nWoB9am2ZsslPxX8VHU0UFcUs0U=; b=h7DFGakA9MhSX8h41VVBJoK36C58QlMoJShE5Dc6REvXTKS9o6vgX0kVdpKGkPlWyI1/sC g+8A+QdM0iQutPi0x3pRCPOxgld9PuI67LWGinCrrJtlfG4XDe0wIupiOQlp0OUYFjuXQ+ 3CU5Dre5zjZ6EMGty0N1OOYAdHTAhTI= X-MC-Unique: Je0kwpn7Mha4yR8HqGRTdQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 02/27] qemuProcessPrepareHostBackendChardevFileHelper: Always use FD passing Date: Wed, 9 Feb 2022 17:01:54 +0100 Message-Id: <359956c179b4acf9b2f8b2ba932f889d4cbd39f3.1644422239.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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: 1644422589407100005 Content-Type: text/plain; charset="utf-8" Code paths which don't wish to use FD passing are supposed to not call the function which sets up the chardev for FD passing. This is ensured by calling it only in the host prepare step. Signed-off-by: Peter Krempa --- src/qemu/qemu_process.c | 11 ----------- tests/qemuxml2argvdata/aarch64-pci-serial.args | 3 ++- .../name-escape.x86_64-2.11.0.args | 3 ++- tests/qemuxml2argvdata/serial-file-chardev.args | 3 ++- tests/qemuxml2argvdata/serial-file-log.args | 4 +++- tests/qemuxml2argvdata/serial-many-chardev.args | 3 ++- tests/qemuxml2argvtest.c | 16 ++++++---------- 7 files changed, 17 insertions(+), 26 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 24873f6fb7..169d9d1755 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6758,18 +6758,9 @@ qemuProcessPrepareHostBackendChardevFileHelper(const= char *path, int *fd, virLogManager *logManager, virSecurityManager *secMana= ger, - virQEMUCaps *qemuCaps, virQEMUDriverConfig *cfg, const virDomainDef *def) { - /* Technically, to pass an FD via /dev/fdset we don't need - * any capability check because X_QEMU_CAPS_ADD_FD is already - * assumed. But keeping the old style is still handy when - * building a standalone command line (e.g. for tests). */ - if (!logManager && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE)) - return 0; - if (logManager) { int flags =3D 0; @@ -6867,7 +6858,6 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDevi= ceDef *dev, &charpriv->fd, data->logManage= r, data->secManage= r, - data->qemuCaps, data->cfg, data->def) < 0) return -1; @@ -6908,7 +6898,6 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDevi= ceDef *dev, &charpriv->logf= d, data->logManage= r, data->secManage= r, - data->qemuCaps, data->cfg, data->def) < 0) return -1; diff --git a/tests/qemuxml2argvdata/aarch64-pci-serial.args b/tests/qemuxml= 2argvdata/aarch64-pci-serial.args index b4f84cf778..aca88e8e60 100644 --- a/tests/qemuxml2argvdata/aarch64-pci-serial.args +++ b/tests/qemuxml2argvdata/aarch64-pci-serial.args @@ -29,6 +29,7 @@ QEMU_AUDIO_DRV=3Dnone \ -device i82801b11-bridge,id=3Dpci.1,bus=3Dpcie.0,addr=3D0x1 \ -device pci-bridge,chassis_nr=3D2,id=3Dpci.2,bus=3Dpci.1,addr=3D0x0 \ -device pcie-root-port,port=3D16,chassis=3D3,id=3Dpci.3,bus=3Dpcie.0,addr= =3D0x2 \ --chardev pty,id=3Dcharserial0,logfile=3D/tmp/log,logappend=3Don \ +-add-fd set=3D0,fd=3D1751 \ +-chardev pty,id=3Dcharserial0,logfile=3D/dev/fdset/0,logappend=3Don \ -device pci-serial,chardev=3Dcharserial0,id=3Dserial0,bus=3Dpci.2,addr=3D0= x1 \ -msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args b/tests/= qemuxml2argvdata/name-escape.x86_64-2.11.0.args index a246c08b12..6d4c5bff6e 100644 --- a/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args +++ b/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args @@ -33,7 +33,8 @@ QEMU_AUDIO_DRV=3Dspice \ -device ccid-card-emulated,backend=3Dcertificates,cert1=3Dcert1,,foo,cert2= =3Dcert2,cert3=3Dcert3,db=3D/etc/pki/nssdb,,foo,id=3Dsmartcard0,bus=3Dccid0= .0 \ -chardev tty,id=3Dcharserial0,path=3D/dev/ttyS2,,foo \ -device isa-serial,chardev=3Dcharserial0,id=3Dserial0,index=3D1 \ --chardev file,id=3Dcharserial1,path=3D/tmp/serial.log,,foo,append=3Don \ +-add-fd set=3D0,fd=3D1750 \ +-chardev file,id=3Dcharserial1,path=3D/dev/fdset/0,append=3Don \ -device isa-serial,chardev=3Dcharserial1,id=3Dserial1,index=3D0 \ -chardev pipe,id=3Dcharchannel0,path=3D/tmp/guestfwd,,foo \ -netdev user,guestfwd=3Dtcp:10.0.2.1:4600-chardev:charchannel0,id=3Dchanne= l0 \ diff --git a/tests/qemuxml2argvdata/serial-file-chardev.args b/tests/qemuxm= l2argvdata/serial-file-chardev.args index 4ec07d9b1f..7df5c2a115 100644 --- a/tests/qemuxml2argvdata/serial-file-chardev.args +++ b/tests/qemuxml2argvdata/serial-file-chardev.args @@ -29,7 +29,8 @@ QEMU_AUDIO_DRV=3Dnone \ -usb \ -drive file=3D/dev/HostVG/QEMUGuest1,format=3Draw,if=3Dnone,id=3Ddrive-ide= 0-0-0 \ -device ide-hd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0,b= ootindex=3D1 \ --chardev file,id=3Dcharserial0,path=3D/tmp/serial.log,append=3Don \ +-add-fd set=3D0,fd=3D1750 \ +-chardev file,id=3Dcharserial0,path=3D/dev/fdset/0,append=3Don \ -device isa-serial,chardev=3Dcharserial0,id=3Dserial0,index=3D0 \ -device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x2 \ -msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-file-log.args b/tests/qemuxml2ar= gvdata/serial-file-log.args index 1ffa30d207..72d7c49298 100644 --- a/tests/qemuxml2argvdata/serial-file-log.args +++ b/tests/qemuxml2argvdata/serial-file-log.args @@ -29,6 +29,8 @@ QEMU_AUDIO_DRV=3Dnone \ -usb \ -drive file=3D/dev/HostVG/QEMUGuest1,format=3Draw,if=3Dnone,id=3Ddrive-ide= 0-0-0 \ -device ide-hd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0,b= ootindex=3D1 \ --chardev file,id=3Dcharserial0,path=3D/tmp/serial.log,logfile=3D/var/lib/l= ibvirt/qemu/demo-serial.log,logappend=3Doff \ +-add-fd set=3D0,fd=3D1750 \ +-add-fd set=3D1,fd=3D1751 \ +-chardev file,id=3Dcharserial0,path=3D/dev/fdset/0,append=3Don,logfile=3D/= dev/fdset/1,logappend=3Don \ -device isa-serial,chardev=3Dcharserial0,id=3Dserial0,index=3D0 \ -msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-many-chardev.args b/tests/qemuxm= l2argvdata/serial-many-chardev.args index e0005656ea..5e80348d11 100644 --- a/tests/qemuxml2argvdata/serial-many-chardev.args +++ b/tests/qemuxml2argvdata/serial-many-chardev.args @@ -31,7 +31,8 @@ QEMU_AUDIO_DRV=3Dnone \ -device ide-hd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0,b= ootindex=3D1 \ -chardev pty,id=3Dcharserial0 \ -device isa-serial,chardev=3Dcharserial0,id=3Dserial0,index=3D0 \ --chardev file,id=3Dcharserial1,path=3D/tmp/serial.log \ +-add-fd set=3D0,fd=3D1750 \ +-chardev file,id=3Dcharserial1,path=3D/dev/fdset/0,append=3Don \ -device isa-serial,chardev=3Dcharserial1,id=3Dserial1,index=3D1 \ -device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x2 \ -msg timestamp=3Don diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 6cf35a0ebf..b2d6606d6e 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -416,11 +416,9 @@ testPrepareHostBackendChardevOne(virDomainDeviceDef *d= ev, break; case VIR_DOMAIN_CHR_TYPE_FILE: - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE= )) { - if (fcntl(1750, F_GETFD) !=3D -1) - abort(); - charpriv->fd =3D 1750; - } + if (fcntl(1750, F_GETFD) !=3D -1) + abort(); + charpriv->fd =3D 1750; break; case VIR_DOMAIN_CHR_TYPE_UNIX: @@ -440,11 +438,9 @@ testPrepareHostBackendChardevOne(virDomainDeviceDef *d= ev, } if (chardev->logfile) { - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE= )) { - if (fcntl(1751, F_GETFD) !=3D -1) - abort(); - charpriv->logfd =3D 1751; - } + if (fcntl(1751, F_GETFD) !=3D -1) + abort(); + charpriv->logfd =3D 1751; } return 0; --=20 2.34.1