This will simplify cleanup.
virMutexDestroy(&driver->lock);
VIR_FREE(driver);
VIR_FREE(priv);
+
+ udevPCITranslateDeinit();
} else {
ret = -1;
}
- udevPCITranslateDeinit();
return ret;
}
struct udev *udev = NULL;
int ret = -1;
- if (udevPCITranslateInit(privileged) < 0)
- goto out;
-
if (VIR_ALLOC(priv) < 0)
goto out;
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
*