From nobody Sat Feb 7 13:47:30 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1602708286; cv=none; d=zohomail.com; s=zohoarc; b=chiJ++A0hmzns7f45G48zN8xdJyf2uoldhkBED59/g7YByxzQW5/QvIxMPjsA4rGXubne1aAReUjgeGA8ipKIGoTUUP4n9YR+mA3LvH0VtIq2jJp+W6OzkioGDD6TrPTYbGt7zi4ItaooUi6QvxD0iZfYn4Q2nc/1SdwSrHZMsQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602708286; h=Content-Type:Content-Transfer-Encoding:Cc: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=RJ+Ylon9xyY8pu9+dyKOMMRKOBJifr54H/KoFaC7VhM=; b=ToBFZGBXW+cMe/P5rMm1YjWwd+hSgmNfYWVKE6EneaKLSEm7+yQ0nbSxfItOgc1eZ8j173pz/KhrT0TG93z+eh0ggFeSX+iBd3Dl6D4LoNAE2tCy9jYLTG20528UCsF+llVPqZd4A0d8rQr18Y87bA3nCvrXtssgtoYGL5RBN5E= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1602708286989288.00065086817517; Wed, 14 Oct 2020 13:44:46 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-295-RfaSiqemObCnveQ1BJAgnw-1; Wed, 14 Oct 2020 16:44:43 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B1CE78030DF; Wed, 14 Oct 2020 20:44:36 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8E55A75132; Wed, 14 Oct 2020 20:44:36 +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 5DB805813C; Wed, 14 Oct 2020 20:44:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 09EKhtd7028840 for ; Wed, 14 Oct 2020 16:43:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9E9CB10921A9; Wed, 14 Oct 2020 20:43:55 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9A0751067DB4 for ; Wed, 14 Oct 2020 20:43:55 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 740D2805C1E for ; Wed, 14 Oct 2020 20:43:55 +0000 (UTC) Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-198-UB4EnywJM-q7HJESxzvFCw-1; Wed, 14 Oct 2020 16:43:51 -0400 Received: by mail-il1-f178.google.com with SMTP id y16so1049372ila.7 for ; Wed, 14 Oct 2020 13:43:51 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:5a9b:54fc:df2a:8a5e:989b]) by smtp.gmail.com with ESMTPSA id i4sm492202ilc.27.2020.10.14.13.43.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Oct 2020 13:43:50 -0700 (PDT) X-MC-Unique: RfaSiqemObCnveQ1BJAgnw-1 X-MC-Unique: UB4EnywJM-q7HJESxzvFCw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RJ+Ylon9xyY8pu9+dyKOMMRKOBJifr54H/KoFaC7VhM=; b=seGHvr62uul/4YxJqmc+mykid4kEE2rZ3/MGAp8udUcYhJZ7gco8LOTlHx1eXcdxYy OTWvVCyObW5UncMcqZZY6+JMLSHCSa/Xu0LGliQVlTJ9ESnIM6oMhZ5YEch7Mq/1Cij4 cU4Olf9E/ha3QrCi4bFrXVnB/a2iQSktHI4+TlSNME+3domPpHJc2lhU8JmOcC3jUyO2 Rd7HHslTQbjYsTaIixb3zhlVfdU89hHrZbPKpU3iPN3q+eVfH57/a3pDyMJsfJiOfjDc IdF0DpQqc1f5Nk6uzHqPccab9PS2tPId3Ow4edlrgpllHrILNB4gMUIAWQRwBJJe+YXb 1HUQ== X-Gm-Message-State: AOAM531KELATcVvNMU/NwKRWt3IcnvfNpNNrYa240N9KWoQm+5cfkQbI Vm+f10X3VJX5ln2V5r3gs/At3M82bRI= X-Google-Smtp-Source: ABdhPJy2kL6da8DeQRoQR+gTNnqcdOd4dBN/J/2B22nydbNh5FHwBSlYgIM1evnuReA66JdcgDJB5g== X-Received: by 2002:a92:cecf:: with SMTP id z15mr844539ilq.14.1602708230655; Wed, 14 Oct 2020 13:43:50 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v1 19/24] qemu_command.c: move usb_redir validations to qemu_validate.c Date: Wed, 14 Oct 2020 17:43:02 -0300 Message-Id: <20201014204307.631746-20-danielhb413@gmail.com> In-Reply-To: <20201014204307.631746-1-danielhb413@gmail.com> References: <20201014204307.631746-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza 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.15 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 Content-Type: text/plain; charset="utf-8" Signed-off-by: Daniel Henrique Barboza --- src/qemu/qemu_command.c | 21 --------------------- src/qemu/qemu_validate.c | 29 ++++++++++++++++++++++++++--- tests/qemuxml2xmltest.c | 10 +++++++--- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7008f14028..16bb8dbdbe 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8925,31 +8925,10 @@ qemuBuildRedirdevDevStr(const virDomainDef *def, g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; virDomainRedirFilterDefPtr redirfilter =3D def->redirfilter; =20 - if (dev->bus !=3D VIR_DOMAIN_REDIRDEV_BUS_USB) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Redirection bus %s is not supported by QEMU"), - virDomainRedirdevBusTypeToString(dev->bus)); - return NULL; - } - - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_REDIR)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("USB redirection is not supported " - "by this version of QEMU")); - return NULL; - } - virBufferAsprintf(&buf, "usb-redir,chardev=3Dchar%s,id=3D%s", dev->info.alias, dev->info.alias); =20 if (redirfilter && redirfilter->nusbdevs) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_REDIR_FILTER)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("USB redirection filter is not " - "supported by this version of QEMU")); - return NULL; - } - virBufferAddLit(&buf, ",filter=3D"); =20 for (i =3D 0; i < redirfilter->nusbdevs; i++) { diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 65d6e18fe5..7969571b4a 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1770,11 +1770,34 @@ qemuValidateDomainRNGDef(const virDomainRNGDef *def, =20 =20 static int -qemuValidateDomainRedirdevDef(const virDomainRedirdevDef *def, +qemuValidateDomainRedirdevDef(const virDomainRedirdevDef *dev, + const virDomainDef *def, virQEMUCapsPtr qemuCaps) { - if (qemuValidateDomainChrSourceDef(def->source, qemuCaps) < 0) + if (qemuValidateDomainChrSourceDef(dev->source, qemuCaps) < 0) + return -1; + + if (dev->bus !=3D VIR_DOMAIN_REDIRDEV_BUS_USB) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Redirection bus %s is not supported by QEMU"), + virDomainRedirdevBusTypeToString(dev->bus)); return -1; + } + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_REDIR)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("USB redirection is not supported " + "by this version of QEMU")); + return -1; + } + + if (def->redirfilter && def->redirfilter->nusbdevs && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_REDIR_FILTER)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("USB redirection filter is not " + "supported by this version of QEMU")); + return -1; + } =20 return 0; } @@ -4483,7 +4506,7 @@ qemuValidateDomainDeviceDef(const virDomainDeviceDef = *dev, break; =20 case VIR_DOMAIN_DEVICE_REDIRDEV: - ret =3D qemuValidateDomainRedirdevDef(dev->data.redirdev, qemuCaps= ); + ret =3D qemuValidateDomainRedirdevDef(dev->data.redirdev, def, qem= uCaps); break; =20 case VIR_DOMAIN_DEVICE_WATCHDOG: diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index a897dfe17a..7160653471 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -631,9 +631,13 @@ mymain(void) QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, QEMU_CAPS_PIIX3_USB_UHCI); DO_TEST("usb-port-missing", QEMU_CAPS_USB_HUB); - DO_TEST("usb-redir", NONE); - DO_TEST("usb-redir-filter", NONE); - DO_TEST("usb-redir-filter-version", NONE); + DO_TEST("usb-redir", QEMU_CAPS_USB_REDIR); + DO_TEST("usb-redir-filter", + QEMU_CAPS_USB_REDIR, + QEMU_CAPS_USB_REDIR_FILTER); + DO_TEST("usb-redir-filter-version", + QEMU_CAPS_USB_REDIR, + QEMU_CAPS_USB_REDIR_FILTER); DO_TEST_CAPS_LATEST("blkdeviotune"); DO_TEST_CAPS_LATEST("blkdeviotune-max"); DO_TEST_CAPS_LATEST("blkdeviotune-group-num"); --=20 2.26.2