From nobody Tue Oct 22 22:29:43 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=1694699889; cv=none; d=zohomail.com; s=zohoarc; b=V2uurHx9eyID5lI1K8p89G5i/aC45lCYhsgsZcEGGNpbhPzUij5Kjhsa2rbV67lYqNYrr6iQQVVJNZz9TDqtbsNMwACjGArzrDkeeWU4Gc9QJRW70rtdRItV1pleYMq6FIGAXvD5CNcwfDyKJnFbGbKmAQ6ePLShiam23sHcNK4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694699889; 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=DdwhY+kZCBzTE/NmFnm9E1ly1plFVcawNyAR5zbkRE0=; b=RMr3QngBPautZUh1PEouexZIwsen1A2ZSerPdKBk2Vbq8gs+vhUMRWfU7SOdLD3yAO9gf4oNY1Ajl/1C+MNJSnZlAPbsGKFX8RP+mVFHRrG9zACnOQJUwF2DgHbV8NnphbeNaTlVHVs2TFBWIByvnNWoQH8W5H9nmycIR8Dhdzs= 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 1694699889310789.987662596945; Thu, 14 Sep 2023 06:58:09 -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-583-wgMNzviDOjGX2Sb8HFv_mw-1; Thu, 14 Sep 2023 09:58:05 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 02F5388B7A8; Thu, 14 Sep 2023 13:58:01 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id DCEF140C6EA8; Thu, 14 Sep 2023 13:58:00 +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 4881B19451FE; Thu, 14 Sep 2023 13:56:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 7162019465B8 for ; Thu, 14 Sep 2023 13:56:37 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 59B8540C6EC1; Thu, 14 Sep 2023 13:56:32 +0000 (UTC) Received: from maggie.brq.redhat.com (unknown [10.43.2.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id D8E0D40C6ECE for ; Thu, 14 Sep 2023 13:56:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1694699888; 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=DdwhY+kZCBzTE/NmFnm9E1ly1plFVcawNyAR5zbkRE0=; b=EAwyctIYEEz/5f7ZRZt4jfaZ5d3LmpcsCzjGK3YKLFovu+5rfLdMqhpLmhIWrpn198lWiz n2NJgX+hR54j2uPm4ZWfNUoUf4g+cXNWKNkySmseMIr9QU7T5WMAxjLeE4DY62WUde3dF7 +/MrePIpQN/xFP9WUAt2+x3xlI3Poc8= X-MC-Unique: wgMNzviDOjGX2Sb8HFv_mw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 12/20] virDomainHostdevSubsys: Convert 'type' field to proper enum type Date: Thu, 14 Sep 2023 15:56:13 +0200 Message-ID: <74983764b05e165b20552d063f20adbfd620038b.1694699682.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 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 3.1 on 10.11.54.2 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: 1694699889721100005 Content-Type: text/plain; charset="utf-8"; x-default="true" Convert the field, and fill in missing cases to switch() statements. Signed-off-by: Michal Privoznik --- src/conf/domain_audit.c | 2 +- src/conf/domain_conf.c | 57 +++++++++++++++++++------------- src/conf/domain_conf.h | 2 +- src/conf/domain_validate.c | 2 +- src/libxl/libxl_driver.c | 12 +++++++ src/lxc/lxc_controller.c | 5 +++ src/lxc/lxc_driver.c | 10 ++++++ src/lxc/lxc_hostdev.c | 5 +++ src/qemu/qemu_command.c | 2 +- src/qemu/qemu_domain.c | 4 +-- src/qemu/qemu_hotplug.c | 4 ++- src/qemu/qemu_migration.c | 2 +- src/qemu/qemu_validate.c | 2 +- src/security/security_apparmor.c | 2 +- src/security/security_dac.c | 4 +-- src/security/security_selinux.c | 4 +-- src/security/virt-aa-helper.c | 3 ++ 17 files changed, 85 insertions(+), 37 deletions(-) diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c index 0bf1768acd..4294b50c3a 100644 --- a/src/conf/domain_audit.c +++ b/src/conf/domain_audit.c @@ -353,7 +353,7 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostde= vDef *hostdev, =20 switch (hostdev->mode) { case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS: - switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) { + switch (hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: address =3D virPCIDeviceAddressAsString(&pcisrc->addr); break; diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index cf1bd4df74..35cb14b986 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2632,7 +2632,7 @@ virDomainHostdevDefClear(virDomainHostdevDef *def) } break; case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS: - switch ((virDomainHostdevSubsysType) def->source.subsys.type) { + switch (def->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: virDomainHostdevSubsysSCSIClear(&def->source.subsys.u.scsi); break; @@ -6168,7 +6168,7 @@ virDomainHostdevSubsysMediatedDevDefParseXML(virDomai= nHostdevDef *def, static int virDomainHostdevDefParseXMLSubsys(xmlNodePtr node, xmlXPathContextPtr ctxt, - const char *type, + virDomainHostdevSubsysType type, virDomainHostdevDef *def, unsigned int flags, virDomainXMLOption *xmlopt) @@ -6202,18 +6202,7 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node, * . (the functions we're going to call expect address * type to already be known). */ - if (!type) { - virReportError(VIR_ERR_XML_ERROR, - "%s", _("missing source address type")); - return -1; - } - - if ((def->source.subsys.type =3D virDomainHostdevSubsysTypeFromString(= type)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown host device source address type '%1$s'"), - type); - return -1; - } + def->source.subsys.type =3D type; =20 if (!(sourcenode =3D virXPathNode("./source", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -6322,6 +6311,7 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node, return -1; break; =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("address type=3D'%1$s' not supported in hostdev i= nterfaces"), @@ -8868,6 +8858,7 @@ virDomainActualNetDefParseXML(xmlNodePtr node, } } else if (actual->type =3D=3D VIR_DOMAIN_NET_TYPE_HOSTDEV) { virDomainHostdevDef *hostdev =3D &actual->data.hostdev.def; + int type; =20 hostdev->parentnet =3D parent; hostdev->info =3D &parent->info; @@ -8879,8 +8870,16 @@ virDomainActualNetDefParseXML(xmlNodePtr node, /* if not explicitly stated, source/vendor implies usb device */ if (!addrtype && virXPathNode("./source/vendor", ctxt)) addrtype =3D g_strdup("usb"); + + if ((type =3D virDomainHostdevSubsysTypeFromString(addrtype)) < 0)= { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown host device source address type '%1$= s'"), + addrtype); + goto error; + } + hostdev->mode =3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS; - if (virDomainHostdevDefParseXMLSubsys(node, ctxt, addrtype, + if (virDomainHostdevDefParseXMLSubsys(node, ctxt, type, hostdev, flags, xmlopt) < 0)= { goto error; } @@ -9544,6 +9543,7 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt, =20 case VIR_DOMAIN_NET_TYPE_HOSTDEV: { g_autofree char *addrtype =3D virXPathString("string(./source/addr= ess/@type)", ctxt); + int type; =20 def->data.hostdev.def.parentnet =3D def; def->data.hostdev.def.info =3D &def->info; @@ -9556,7 +9556,15 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt, /* The helper function expects type to already be found and * passed in as a string, since it is in a different place in * NetDef vs HostdevDef. */ - if (virDomainHostdevDefParseXMLSubsys(node, ctxt, addrtype, + + if ((type =3D virDomainHostdevSubsysTypeFromString(addrtype)) < 0)= { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown host device source address type '%1$= s'"), + addrtype); + return NULL; + } + + if (virDomainHostdevDefParseXMLSubsys(node, ctxt, type, &def->data.hostdev.def, flags, xmlopt) < 0) return NULL; @@ -12909,8 +12917,7 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xml= opt, { virDomainHostdevDef *def; VIR_XPATH_NODE_AUTORESTORE(ctxt) - g_autofree char *type =3D virXMLPropString(node, "type"); - unsigned int typeU; + unsigned int type; =20 ctxt->node =3D node; =20 @@ -12926,6 +12933,10 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xm= lopt, switch (def->mode) { case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS: /* parse managed/mode/type, and the element */ + if (virXMLPropEnum(node, "type", + virDomainHostdevSubsysTypeFromString, + VIR_XML_PROP_REQUIRED, &type) < 0) + goto error; if (virDomainHostdevDefParseXMLSubsys(node, ctxt, type, def, flags= , xmlopt) < 0) goto error; break; @@ -12933,10 +12944,10 @@ virDomainHostdevDefParseXML(virDomainXMLOption *x= mlopt, /* parse managed/mode/type, and the element */ if (virXMLPropEnum(node, "type", virDomainHostdevCapsTypeFromString, - VIR_XML_PROP_REQUIRED, &typeU) < 0) + VIR_XML_PROP_REQUIRED, &type) < 0) goto error; =20 - if (virDomainHostdevDefParseXMLCaps(node, ctxt, typeU, def) < 0) + if (virDomainHostdevDefParseXMLCaps(node, ctxt, type, def) < 0) goto error; break; default: @@ -12953,7 +12964,7 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xml= opt, goto error; } if (def->mode =3D=3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) { - switch ((virDomainHostdevSubsysType) def->source.subsys.type) { + switch (def->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: if (virXPathBoolean("boolean(./readonly)", ctxt)) def->readonly =3D true; @@ -14087,7 +14098,7 @@ virDomainHostdevMatchSubsys(virDomainHostdevDef *a, if (a->source.subsys.type !=3D b->source.subsys.type) return 0; =20 - switch ((virDomainHostdevSubsysType) a->source.subsys.type) { + switch (a->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: return virDomainHostdevMatchSubsysPCI(a, b); case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: @@ -23436,7 +23447,7 @@ virDomainHostdevDefFormatSubsys(virBuffer *buf, bool includeTypeInAddr, virDomainXMLOption *xmlopt) { - switch ((virDomainHostdevSubsysType) def->source.subsys.type) { + switch (def->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: virDomainHostdevDefFormatSubsysUSB(buf, def, flags, includeTypeInA= ddr); return 0; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 0e76ff71ac..fc612f3adb 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -316,7 +316,7 @@ struct _virDomainHostdevSubsysSCSIVHost { }; =20 struct _virDomainHostdevSubsys { - int type; /* enum virDomainHostdevSubsysType */ + virDomainHostdevSubsysType type; union { virDomainHostdevSubsysUSB usb; virDomainHostdevSubsysPCI pci; diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index a8f90af3aa..1d25aa32c2 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2149,7 +2149,7 @@ static int virDomainHostdevDefValidate(const virDomainHostdevDef *hostdev) { if (hostdev->mode =3D=3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) { - switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) { + switch (hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: if (hostdev->info->type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NO= NE && hostdev->info->type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UN= ASSIGNED && diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index c8ca903050..c98d2d737a 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -3271,6 +3271,10 @@ libxlDomainAttachHostDevice(libxlDriverPrivate *driv= er, return -1; break; =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("hostdev subsys type '%1$s' not supported"), @@ -3561,6 +3565,10 @@ libxlDomainAttachDeviceConfig(virDomainDef *vmdef, v= irDomainDeviceDef *dev) case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: return -1; + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + break; } =20 if (virDomainHostdevFind(vmdef, hostdev, &found) >=3D 0) { @@ -3835,6 +3843,10 @@ libxlDomainDetachHostDevice(libxlDriverPrivate *driv= er, case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: return libxlDomainDetachHostUSBDevice(driver, vm, hostdev); =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_INTERNAL_ERROR, _("unexpected hostdev type %1$d"), subsys->type= ); diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 7e486d0f78..48f5c73fce 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -1776,6 +1776,11 @@ virLXCControllerSetupHostdevSubsys(virDomainDef *vmD= ef, def, securityDriver); =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported host device mode %1$s"), diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index a9bdeba36d..25cbfc57c9 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -3848,6 +3848,11 @@ lxcDomainAttachDeviceHostdevSubsysLive(virLXCDriver = *driver, case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: return lxcDomainAttachDeviceHostdevSubsysUSBLive(driver, vm, dev); =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported host device type %1$s"), @@ -4281,6 +4286,11 @@ lxcDomainDetachDeviceHostdevSubsysLive(virLXCDriver = *driver, case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: return lxcDomainDetachDeviceHostdevUSBLive(driver, vm, dev); =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported host device type %1$s"), diff --git a/src/lxc/lxc_hostdev.c b/src/lxc/lxc_hostdev.c index 2e06b516d4..0c4f0b8cac 100644 --- a/src/lxc/lxc_hostdev.c +++ b/src/lxc/lxc_hostdev.c @@ -76,6 +76,11 @@ int virLXCPrepareHostDevices(virLXCDriver *driver, switch (dev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: break; + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported hostdev type %1$s"), diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index ccbf41a0f7..701efd46b4 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5141,7 +5141,7 @@ qemuBuildHostdevCommandLine(virCommand *cmd, if (hostdev->mode !=3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) continue; =20 - switch ((virDomainHostdevSubsysType) subsys->type) { + switch (subsys->type) { /* USB */ case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: if (!(devprops =3D qemuBuildUSBHostdevDevProps(def, hostdev, q= emuCaps))) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 818e3822d0..47c3d69bda 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -10680,7 +10680,7 @@ qemuDomainGetHostdevPath(virDomainHostdevDef *dev, =20 switch (dev->mode) { case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS: - switch ((virDomainHostdevSubsysType)dev->source.subsys.type) { + switch (dev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: if (pcisrc->backend =3D=3D VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO= ) { if (!(tmpPath =3D virPCIDeviceAddressGetIOMMUGroupDev(&pci= src->addr))) @@ -11488,7 +11488,7 @@ qemuDomainPrepareHostdev(virDomainHostdevDef *hostd= ev, if (hostdev->mode !=3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) return 0; =20 - switch ((virDomainHostdevSubsysType)hostdev->source.subsys.type) { + switch (hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: return qemuDomainPrepareHostdevSCSI(hostdev, priv); case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index d4f01cfd93..21154892ae 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2791,6 +2791,7 @@ qemuDomainAttachHostDevice(virQEMUDriver *driver, return -1; break; =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("hotplug is not supported for hostdev subsys type= '%1$s'"), @@ -4680,7 +4681,7 @@ qemuDomainRemoveHostDevice(virQEMUDriver *driver, if (qemuDomainNamespaceTeardownHostdev(vm, hostdev) < 0) VIR_WARN("Unable to remove host device from /dev"); =20 - switch ((virDomainHostdevSubsysType)hostdev->source.subsys.type) { + switch (hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: qemuDomainRemovePCIHostDevice(driver, vm, hostdev); /* QEMU might no longer need to lock as much memory, eg. we just @@ -5726,6 +5727,7 @@ qemuDomainDetachPrepHostdev(virDomainObj *vm, break; case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: break; + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: virReportError(VIR_ERR_INTERNAL_ERROR, _("unexpected hostdev type %1$d"), subsys->type= ); diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 9ed5c6e94b..011482c2b5 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1287,7 +1287,7 @@ qemuMigrationSrcIsAllowedHostdev(const virDomainDef *= def) return false; =20 case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS: - switch ((virDomainHostdevSubsysType)hostdev->source.subsys.typ= e) { + switch (hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: /* USB devices can be "migrated" */ continue; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 18d34e7f59..315fc676f2 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -2448,7 +2448,7 @@ qemuValidateDomainDeviceDefHostdev(const virDomainHos= tdevDef *hostdev, } =20 if (hostdev->mode =3D=3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) { - switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) { + switch (hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: if (hostdev->source.subsys.u.usb.guestReset && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_HOST_GUESTS_RESETS= _ALL)) { diff --git a/src/security/security_apparmor.c b/src/security/security_appar= mor.c index 27d64a23bb..bce797de7c 100644 --- a/src/security/security_apparmor.c +++ b/src/security/security_apparmor.c @@ -846,7 +846,7 @@ AppArmorSetSecurityHostdevLabel(virSecurityManager *mgr, ptr->mgr =3D mgr; ptr->def =3D def; =20 - switch ((virDomainHostdevSubsysType)dev->source.subsys.type) { + switch (dev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: { virUSBDevice *usb =3D virUSBDeviceNew(usbsrc->bus, usbsrc->device, vroot); diff --git a/src/security/security_dac.c b/src/security/security_dac.c index 4667328b26..c07e488db7 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1230,7 +1230,7 @@ virSecurityDACSetHostdevLabel(virSecurityManager *mgr, if (cbdata.secdef && !cbdata.secdef->relabel) return 0; =20 - switch ((virDomainHostdevSubsysType)dev->source.subsys.type) { + switch (dev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: { g_autoptr(virUSBDevice) usb =3D NULL; =20 @@ -1393,7 +1393,7 @@ virSecurityDACRestoreHostdevLabel(virSecurityManager = *mgr, scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISC= SI) return 0; =20 - switch ((virDomainHostdevSubsysType)dev->source.subsys.type) { + switch (dev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: { g_autoptr(virUSBDevice) usb =3D NULL; =20 diff --git a/src/security/security_selinux.c b/src/security/security_selinu= x.c index 1fa5303495..07d779a947 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2184,7 +2184,7 @@ virSecuritySELinuxSetHostdevSubsysLabel(virSecurityMa= nager *mgr, scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISC= SI) return 0; =20 - switch ((virDomainHostdevSubsysType)dev->source.subsys.type) { + switch (dev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: { g_autoptr(virUSBDevice) usb =3D NULL; =20 @@ -2420,7 +2420,7 @@ virSecuritySELinuxRestoreHostdevSubsysLabel(virSecuri= tyManager *mgr, scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISC= SI) return 0; =20 - switch ((virDomainHostdevSubsysType)dev->source.subsys.type) { + switch (dev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: { g_autoptr(virUSBDevice) usb =3D NULL; =20 diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 4638451183..0855eb68ca 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -1106,6 +1106,9 @@ get_files(vahControl * ctl) break; } =20 + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: default: rc =3D 0; break; --=20 2.41.0