]> xenbits.xensource.com Git - libvirt.git/commitdiff
node_device_udev: initialize libpciaccess after the driver lock
authorJán Tomko <jtomko@redhat.com>
Fri, 3 Jun 2016 10:20:41 +0000 (12:20 +0200)
committerJán Tomko <jtomko@redhat.com>
Tue, 7 Jun 2016 08:51:36 +0000 (10:51 +0200)
This will simplify cleanup.

src/node_device/node_device_udev.c

index ebf514515c9d88b1ca0ef352ba6adf40baeacf52..ef8d7af7b30c59fa4961169a4154244e44e4e902 100644 (file)
@@ -1517,11 +1517,12 @@ static int nodeStateCleanup(void)
         virMutexDestroy(&driver->lock);
         VIR_FREE(driver);
         VIR_FREE(priv);
+
+        udevPCITranslateDeinit();
     } else {
         ret = -1;
     }
 
-    udevPCITranslateDeinit();
     return ret;
 }
 
@@ -1711,9 +1712,6 @@ static int nodeStateInitialize(bool privileged,
     struct udev *udev = NULL;
     int ret = -1;
 
-    if (udevPCITranslateInit(privileged) < 0)
-        goto out;
-
     if (VIR_ALLOC(priv) < 0)
         goto out;
 
@@ -1734,6 +1732,11 @@ static int nodeStateInitialize(bool privileged,
 
     nodeDeviceLock();
 
+    if (udevPCITranslateInit(privileged) < 0) {
+        VIR_FREE(priv);
+        goto out_unlock;
+    }
+
     /*
      * http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/libudev-udev.html#udev-new
      *