提交 4d7d1c4b 编写于 作者: M Michal Privoznik

qemu_cgroup: Kill qemuSetupHostUSBDeviceCgroup

There's no need for this function. Currently it is passed as a
callback to virUSBDeviceFileIterate(). However, USB devices have
just one file path. Therefore we can mimic approach used in
qemuDomainGetHostdevPath() to get path and call
virCgroupAllowDevicePath() directly.
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
上级 165c76ac
...@@ -260,23 +260,6 @@ qemuSetupInputCgroup(virDomainObjPtr vm, ...@@ -260,23 +260,6 @@ qemuSetupInputCgroup(virDomainObjPtr vm,
} }
static int
qemuSetupHostUSBDeviceCgroup(virUSBDevicePtr dev ATTRIBUTE_UNUSED,
const char *path,
void *opaque)
{
virDomainObjPtr vm = opaque;
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret;
VIR_DEBUG("Process path '%s' for USB device", path);
ret = virCgroupAllowDevicePath(priv->cgroup, path,
VIR_CGROUP_DEVICE_RW, false);
virDomainAuditCgroupPath(vm, priv->cgroup, "allow", path, "rw", ret == 0);
return ret;
}
static int static int
qemuSetupHostSCSIDeviceCgroup(virSCSIDevicePtr dev ATTRIBUTE_UNUSED, qemuSetupHostSCSIDeviceCgroup(virSCSIDevicePtr dev ATTRIBUTE_UNUSED,
const char *path, const char *path,
...@@ -333,6 +316,7 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm, ...@@ -333,6 +316,7 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm,
virSCSIDevicePtr scsi = NULL; virSCSIDevicePtr scsi = NULL;
virSCSIVHostDevicePtr host = NULL; virSCSIVHostDevicePtr host = NULL;
char *path = NULL; char *path = NULL;
int rv;
/* currently this only does something for PCI devices using vfio /* currently this only does something for PCI devices using vfio
* for device assignment, but it is called for *all* hostdev * for device assignment, but it is called for *all* hostdev
...@@ -347,8 +331,6 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm, ...@@ -347,8 +331,6 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm,
switch ((virDomainHostdevSubsysType) dev->source.subsys.type) { switch ((virDomainHostdevSubsysType) dev->source.subsys.type) {
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) { if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
int rv;
pci = virPCIDeviceNew(pcisrc->addr.domain, pci = virPCIDeviceNew(pcisrc->addr.domain,
pcisrc->addr.bus, pcisrc->addr.bus,
pcisrc->addr.slot, pcisrc->addr.slot,
...@@ -381,13 +363,15 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm, ...@@ -381,13 +363,15 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm,
goto cleanup; goto cleanup;
} }
/* oddly, qemuSetupHostUSBDeviceCgroup doesn't ever if (VIR_STRDUP(path, virUSBDeviceGetPath(usb)) < 0)
* reference the usb object we just created goto cleanup;
*/
if (virUSBDeviceFileIterate(usb, qemuSetupHostUSBDeviceCgroup, VIR_DEBUG("Process path '%s' for USB device", path);
vm) < 0) { rv = virCgroupAllowDevicePath(priv->cgroup, path,
VIR_CGROUP_DEVICE_RW, false);
virDomainAuditCgroupPath(vm, priv->cgroup, "allow", path, "rw", rv == 0);
if (rv < 0)
goto cleanup; goto cleanup;
}
break; break;
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册