diff options
author | Dave Allan <dallan@redhat.com> | 2009-11-19 16:02:18 +0100 |
---|---|---|
committer | Daniel Veillard <veillard@redhat.com> | 2009-11-19 16:02:18 +0100 |
commit | f2f656d426e2829ba93ddf153294bff16cdf9976 (patch) | |
tree | e8ee4495752b640dce13d011aab1c24627695048 | |
parent | report OOM in two places in node_device_driver.c (diff) | |
download | libvirt-f2f656d426e2829ba93ddf153294bff16cdf9976.tar.gz libvirt-f2f656d426e2829ba93ddf153294bff16cdf9976.tar.bz2 libvirt-f2f656d426e2829ba93ddf153294bff16cdf9976.zip |
Removing devicePath member from dev struct
I realized that I inadvertently added a member to the def struct to
contain each device's sysfs path when there was an existing member in the
dev struct for "OS specific path to device metadat, eg sysfs" Since the
udev backend needs to record the sysfs path while it's in the process of
creating the device, before the dev struct gets allocated, I chose to
remove the member from the dev struct.
* src/conf/node_device_conf.c src/conf/node_device_conf.h
src/node_device/node_device_driver.c src/node_device/node_device_hal.c
src/node_device/node_device_udev.c: remove devicePath from the
structure and use def->sysfs_path instead
-rw-r--r-- | src/conf/node_device_conf.c | 1 | ||||
-rw-r--r-- | src/conf/node_device_conf.h | 1 | ||||
-rw-r--r-- | src/node_device/node_device_driver.c | 2 | ||||
-rw-r--r-- | src/node_device/node_device_hal.c | 2 | ||||
-rw-r--r-- | src/node_device/node_device_udev.c | 7 |
5 files changed, 2 insertions, 11 deletions
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index f55c9c76c..f2faeec62 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -156,7 +156,6 @@ void virNodeDeviceObjFree(virNodeDeviceObjPtr dev) if (!dev) return; - VIR_FREE(dev->devicePath); virNodeDeviceDefFree(dev->def); if (dev->privateFree) (*dev->privateFree)(dev->privateData); diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h index 639a7e7a7..7a20bd67b 100644 --- a/src/conf/node_device_conf.h +++ b/src/conf/node_device_conf.h @@ -178,7 +178,6 @@ typedef virNodeDeviceObj *virNodeDeviceObjPtr; struct _virNodeDeviceObj { virMutex lock; - char *devicePath; /* OS specific path to device metadat, eg sysfs */ virNodeDeviceDefPtr def; /* device definition */ void *privateData; /* driver-specific private data */ void (*privateFree)(void *data); /* destructor for private data */ diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index b474d434e..f083f168a 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -85,7 +85,7 @@ static int update_driver_name(virConnectPtr conn, VIR_FREE(dev->def->driver); - if (virAsprintf(&driver_link, "%s/driver", dev->devicePath) < 0) { + if (virAsprintf(&driver_link, "%s/driver", dev->def->sysfs_path) < 0) { virReportOOMError(conn); goto cleanup; } diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c index 1e1d872cd..31c176448 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -470,7 +470,7 @@ static void dev_create(const char *udi) dev->privateData = privData; dev->privateFree = free_udi; - dev->devicePath = devicePath; + dev->def->sysfs_path = devicePath; virNodeDeviceObjUnlock(dev); diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 4ddf360fe..9b4805292 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1230,13 +1230,6 @@ static int udevAddOneDevice(struct udev_device *device) goto out; } - dev->devicePath = strdup(udev_device_get_devpath(device)); - if (dev->devicePath == NULL) { - virReportOOMError(NULL); - virNodeDeviceObjRemove(&driverState->devs, dev); - goto out; - } - virNodeDeviceObjUnlock(dev); ret = 0; |