mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
qemu: cgroup: Adjust cgroups' logic to allow mediated devices
As goes for all the other hostdev device types, grant the qemu process access to /dev/vfio/<mediated_device_iommu_group>. Signed-off-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
a4a39d90ab
commit
de4e8bdbc7
@ -7002,10 +7002,12 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
|
||||
virDomainHostdevSubsysPCIPtr pcisrc = &dev->source.subsys.u.pci;
|
||||
virDomainHostdevSubsysSCSIPtr scsisrc = &dev->source.subsys.u.scsi;
|
||||
virDomainHostdevSubsysSCSIVHostPtr hostsrc = &dev->source.subsys.u.scsi_host;
|
||||
virDomainHostdevSubsysMediatedDevPtr mdevsrc = &dev->source.subsys.u.mdev;
|
||||
virPCIDevicePtr pci = NULL;
|
||||
virUSBDevicePtr usb = NULL;
|
||||
virSCSIDevicePtr scsi = NULL;
|
||||
virSCSIVHostDevicePtr host = NULL;
|
||||
virMediatedDevicePtr mdev = NULL;
|
||||
char *tmpPath = NULL;
|
||||
bool freeTmpPath = false;
|
||||
bool includeVFIO = false;
|
||||
@ -7106,6 +7108,17 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
|
||||
}
|
||||
|
||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV:
|
||||
if (!(mdev = virMediatedDeviceNew(mdevsrc->uuidstr,
|
||||
mdevsrc->model)))
|
||||
goto cleanup;
|
||||
|
||||
if (!(tmpPath = virMediatedDeviceGetIOMMUGroupDev(mdev)))
|
||||
goto cleanup;
|
||||
|
||||
freeTmpPath = true;
|
||||
includeVFIO = true;
|
||||
perm = VIR_CGROUP_DEVICE_RW;
|
||||
break;
|
||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST:
|
||||
break;
|
||||
}
|
||||
@ -7155,6 +7168,7 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
|
||||
virUSBDeviceFree(usb);
|
||||
virSCSIDeviceFree(scsi);
|
||||
virSCSIVHostDeviceFree(host);
|
||||
virMediatedDeviceFree(mdev);
|
||||
if (freeTmpPath)
|
||||
VIR_FREE(tmpPath);
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user