<div dir="ltr">Hi<br><br><div class="gmail_quote"><div dir="ltr">On Fri, Feb 10, 2017 at 6:57 PM Michal Privoznik <<a href="mailto:mprivozn@redhat.com">mprivozn@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There's no need for this function. Currently it is passed as a<br class="gmail_msg">
callback to virUSBDeviceFileIterate(). However, USB devices have<br class="gmail_msg">
just one file path. Therefore we can mimic approach used in<br class="gmail_msg">
qemuDomainGetHostdevPath() to get path and call<br class="gmail_msg">
virCgroupAllowDevicePath() directly.<br class="gmail_msg">
<br class="gmail_msg">
Signed-off-by: Michal Privoznik <<a href="mailto:mprivozn@redhat.com" class="gmail_msg" target="_blank">mprivozn@redhat.com</a>><br class="gmail_msg"></blockquote><div><br> Reviewed-by: Marc-André Lureau <<a href="mailto:marcandre.lureau@redhat.com">marcandre.lureau@redhat.com</a>><div style="color:rgb(0,0,0);font-family:sans;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:21px;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br class="inbox-inbox-Apple-interchange-newline"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br class="gmail_msg">
 src/qemu/qemu_cgroup.c | 34 +++++++++-------------------------<br class="gmail_msg">
 1 file changed, 9 insertions(+), 25 deletions(-)<br class="gmail_msg">
<br class="gmail_msg">
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c<br class="gmail_msg">
index 6c90d46d1..7302c43ee 100644<br class="gmail_msg">
--- a/src/qemu/qemu_cgroup.c<br class="gmail_msg">
+++ b/src/qemu/qemu_cgroup.c<br class="gmail_msg">
@@ -260,23 +260,6 @@ qemuSetupInputCgroup(virDomainObjPtr vm,<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
-static int<br class="gmail_msg">
-qemuSetupHostUSBDeviceCgroup(virUSBDevicePtr dev ATTRIBUTE_UNUSED,<br class="gmail_msg">
-                             const char *path,<br class="gmail_msg">
-                             void *opaque)<br class="gmail_msg">
-{<br class="gmail_msg">
-    virDomainObjPtr vm = opaque;<br class="gmail_msg">
-    qemuDomainObjPrivatePtr priv = vm->privateData;<br class="gmail_msg">
-    int ret;<br class="gmail_msg">
-<br class="gmail_msg">
-    VIR_DEBUG("Process path '%s' for USB device", path);<br class="gmail_msg">
-    ret = virCgroupAllowDevicePath(priv->cgroup, path,<br class="gmail_msg">
-                                   VIR_CGROUP_DEVICE_RW, false);<br class="gmail_msg">
-    virDomainAuditCgroupPath(vm, priv->cgroup, "allow", path, "rw", ret == 0);<br class="gmail_msg">
-<br class="gmail_msg">
-    return ret;<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
 static int<br class="gmail_msg">
 qemuSetupHostSCSIDeviceCgroup(virSCSIDevicePtr dev ATTRIBUTE_UNUSED,<br class="gmail_msg">
                               const char *path,<br class="gmail_msg">
@@ -333,6 +316,7 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm,<br class="gmail_msg">
     virSCSIDevicePtr scsi = NULL;<br class="gmail_msg">
     virSCSIVHostDevicePtr host = NULL;<br class="gmail_msg">
     char *path = NULL;<br class="gmail_msg">
+    int rv;<br class="gmail_msg">
<br class="gmail_msg">
     /* currently this only does something for PCI devices using vfio<br class="gmail_msg">
      * for device assignment, but it is called for *all* hostdev<br class="gmail_msg">
@@ -347,8 +331,6 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm,<br class="gmail_msg">
         switch ((virDomainHostdevSubsysType) dev->source.subsys.type) {<br class="gmail_msg">
         case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:<br class="gmail_msg">
             if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {<br class="gmail_msg">
-                int rv;<br class="gmail_msg">
-<br class="gmail_msg">
                 pci = virPCIDeviceNew(pcisrc->addr.domain,<br class="gmail_msg">
                                       pcisrc->addr.bus,<br class="gmail_msg">
                                       pcisrc->addr.slot,<br class="gmail_msg">
@@ -381,13 +363,15 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm,<br class="gmail_msg">
                 goto cleanup;<br class="gmail_msg">
             }<br class="gmail_msg">
<br class="gmail_msg">
-            /* oddly, qemuSetupHostUSBDeviceCgroup doesn't ever<br class="gmail_msg">
-             * reference the usb object we just created<br class="gmail_msg">
-             */<br class="gmail_msg">
-            if (virUSBDeviceFileIterate(usb, qemuSetupHostUSBDeviceCgroup,<br class="gmail_msg">
-                                        vm) < 0) {<br class="gmail_msg">
+            if (VIR_STRDUP(path, virUSBDeviceGetPath(usb)) < 0)<br class="gmail_msg">
+                goto cleanup;<br class="gmail_msg">
+<br class="gmail_msg">
+            VIR_DEBUG("Process path '%s' for USB device", path);<br class="gmail_msg">
+            rv = virCgroupAllowDevicePath(priv->cgroup, path,<br class="gmail_msg">
+                                          VIR_CGROUP_DEVICE_RW, false);<br class="gmail_msg">
+            virDomainAuditCgroupPath(vm, priv->cgroup, "allow", path, "rw", rv == 0);<br class="gmail_msg">
+            if (rv < 0)<br class="gmail_msg">
                 goto cleanup;<br class="gmail_msg">
-            }<br class="gmail_msg">
             break;<br class="gmail_msg">
<br class="gmail_msg">
         case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: {<br class="gmail_msg">
--<br class="gmail_msg">
2.11.0<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
libvir-list mailing list<br class="gmail_msg">
<a href="mailto:libvir-list@redhat.com" class="gmail_msg" target="_blank">libvir-list@redhat.com</a><br class="gmail_msg">
<a href="https://www.redhat.com/mailman/listinfo/libvir-list" rel="noreferrer" class="gmail_msg" target="_blank">https://www.redhat.com/mailman/listinfo/libvir-list</a><br class="gmail_msg">
</blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">Marc-André Lureau<br></div></div>