aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Allan <dallan@redhat.com>2009-11-19 16:02:18 +0100
committerDaniel Veillard <veillard@redhat.com>2009-11-19 16:02:18 +0100
commitf2f656d426e2829ba93ddf153294bff16cdf9976 (patch)
treee8ee4495752b640dce13d011aab1c24627695048
parentreport OOM in two places in node_device_driver.c (diff)
downloadlibvirt-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.c1
-rw-r--r--src/conf/node_device_conf.h1
-rw-r--r--src/node_device/node_device_driver.c2
-rw-r--r--src/node_device/node_device_hal.c2
-rw-r--r--src/node_device/node_device_udev.c7
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;