From: Ján Tomko Date: Fri, 3 Jun 2016 10:57:41 +0000 (+0200) Subject: Assign node device driver private data earlier X-Git-Tag: v2.0.0-rc1~465 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa89f6c4a3ef9688c3027f0e3cc31fb022faa3b5;p=thirdparty%2Flibvirt.git Assign node device driver private data earlier --- diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index c2f503ddeb..f443d5805d 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1499,14 +1499,16 @@ static int nodeStateCleanup(void) priv = driver->privateData; - if (priv->watch != -1) - virEventRemoveHandle(priv->watch); + if (priv) { + if (priv->watch != -1) + virEventRemoveHandle(priv->watch); - udev_monitor = DRV_STATE_UDEV_MONITOR(driver); + udev_monitor = DRV_STATE_UDEV_MONITOR(driver); - if (udev_monitor != NULL) { - udev = udev_monitor_get_udev(udev_monitor); - udev_monitor_unref(udev_monitor); + if (udev_monitor != NULL) { + udev = udev_monitor_get_udev(udev_monitor); + udev_monitor_unref(udev_monitor); + } } if (udev != NULL) @@ -1726,12 +1728,11 @@ static int nodeStateInitialize(bool privileged, return -1; } + driver->privateData = priv; nodeDeviceLock(); - if (udevPCITranslateInit(privileged) < 0) { - VIR_FREE(priv); + if (udevPCITranslateInit(privileged) < 0) goto out_unlock; - } /* * http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/libudev-udev.html#udev-new @@ -1747,16 +1748,12 @@ static int nodeStateInitialize(bool privileged, priv->udev_monitor = udev_monitor_new_from_netlink(udev, "udev"); if (priv->udev_monitor == NULL) { - VIR_FREE(priv); VIR_ERROR(_("udev_monitor_new_from_netlink returned NULL")); goto out_unlock; } udev_monitor_enable_receiving(priv->udev_monitor); - /* udev can be retrieved from udev_monitor */ - driver->privateData = priv; - /* We register the monitor with the event callback so we are * notified by udev of device changes before we enumerate existing * devices because libvirt will simply recreate the device if we