[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 07/13] libxl: convert libxl_device_nic_add to an async operation
Roger Pau Monne writes ("[PATCH v6 07/13] libxl: convert libxl_device_nic_add to an async operation"): > This patch converts libxl_device_nic_add to an ao operation that > waits for device backend to reach state XenbusStateInitWait and then > marks the operation as completed. This is not really useful now, but > will be used by latter patches that will launch hotplug scripts after > we reached the desired xenbus state. > > Calls to libxl_device_nic_add have also been moved to occur after the > device model has been launched, so when hotplug scripts are called > from this functions the interfaces already exists. > > As usual, libxl_device_nic_add callers have been modified, and the > internal function libxl__device_disk_add has been used if the call was > inside an already running ao. This all looks reasonable to me. But seeing this: > diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c > index 5d34ed5..f7217aa 100644 > --- a/tools/libxl/libxl_device.c > +++ b/tools/libxl/libxl_device.c > @@ -454,8 +454,8 @@ void libxl__ao_devices_callback(libxl__egc *egc, > libxl__ao_device *aodev) > #define libxl__device_disk_add(egc, domid, disk, aodev) > \ > libxl__device_disk_add(egc, domid, XBT_NULL, disk, aodev) > > -#define DEFINE_DEVICES_ADD(type) > \ > - void libxl__add_##type##s(libxl__egc *egc, libxl__ao *ao, uint32_t > domid, \ > +#define DEFINE_DEVICES_ADD(type, name) > \ > + void libxl__add_##name##s(libxl__egc *egc, libxl__ao *ao, uint32_t > domid, \ > libxl_domain_config *d_config, > \ > libxl__ao_devices *aodevs, > \ > libxl__devices_callback *callback) > \ > @@ -469,12 +469,13 @@ void libxl__ao_devices_callback(libxl__egc *egc, > libxl__ao_device *aodev) > > \ > for (i = 0; i < aodevs->size; i++) { > \ > aodevs->array[i].callback = libxl__ao_devices_callback; > \ > - libxl__device_##type##_add(egc, domid, &d_config->type##s[i], > \ > + libxl__device_##name##_add(egc, domid, &d_config->type##s[i], > \ > &aodevs->array[i]); > \ > } > \ > } > > -DEFINE_DEVICES_ADD(disk) > +DEFINE_DEVICES_ADD(disk, disk) > +DEFINE_DEVICES_ADD(vif, nic) it seems to me that this is an anomaly which might be better fixed than worked around. Should we rename the functions libxl_*nic* or the structures *vif* ? Or should we rename both, to "net" perhaps ? In any case, Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |