From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau(a)redhat.com>
---
src/qemu/qemu_cgroup.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index ca76c4fdfa..1627b5ef5d 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -504,6 +504,25 @@ qemuSetupGraphicsCgroup(virDomainObjPtr vm,
}
+static int
+qemuSetupVideoAccelCgroup(virDomainObjPtr vm,
+ const virDomainVideoAccelDefPtr def)
+{
+ qemuDomainObjPrivatePtr priv = vm->privateData;
+ int ret;
+
+ if (!def->rendernode ||
+ !virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES))
+ return 0;
+
+ ret = virCgroupAllowDevicePath(priv->cgroup, def->rendernode,
+ VIR_CGROUP_DEVICE_RW, false);
+ virDomainAuditCgroupPath(vm, priv->cgroup, "allow", def->rendernode,
+ "rw", ret);
+ return ret;
+}
+
+
static int
qemuSetupBlkioCgroup(virDomainObjPtr vm)
{
@@ -804,6 +823,11 @@ qemuSetupDevicesCgroup(virDomainObjPtr vm)
goto cleanup;
}
+ for (i = 0; i < vm->def->nvideos; i++) {
+ if (qemuSetupVideoAccelCgroup(vm, vm->def->videos[i]->accel) < 0)
+ goto cleanup;
+ }
+
for (i = 0; i < vm->def->ninputs; i++) {
if (qemuSetupInputCgroup(vm, vm->def->inputs[i]) < 0)
goto cleanup;
--
2.22.0.rc2.384.g1a9a72ea1d