[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 04/11] libxl: add generic function to add device
On Fri, Jul 7, 2017 at 12:49 PM, Oleksandr Grytsov <al1img@xxxxxxxxx> wrote: > On Thu, Jul 6, 2017 at 6:51 PM, Wei Liu <wei.liu2@xxxxxxxxxx> wrote: >> On Tue, Jun 27, 2017 at 01:03:20PM +0300, Oleksandr Grytsov wrote: >>> From: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx> >>> >>> Add libxl__device_add functio. >>> Almost all devices have similar libxl__device_xxxx_add function. >>> This generic function implements same functionality but >>> using the device handling framework. The device specific >>> part this is setting xen store configuration. This part >>> is moved to set_xenstore_config callback of the device framework. >>> >>> Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx> >> [...] >>> + >>> +void libxl__device_add(libxl__egc *egc, uint32_t domid, >>> + const struct libxl_device_type *dt, void *type, >>> + libxl__ao_device *aodev) >>> +{ >>> + STATE_AO_GC(aodev->ao); >>> + libxl__device *device; >>> + int rc; >>> + >>> + rc = dt->set_default(gc, domid, type); >>> + if (rc) goto out; >>> + >>> + GCNEW(device); >>> + rc = dt->to_device(gc, domid, type, device); >>> + if ( rc != 0 ) goto out; >>> + >>> + rc = libxl__device_exists(gc, XBT_NULL, device); >>> + if (rc < 0) goto out; >>> + if (rc == 1) { /* already exists in xenstore */ >>> + LOGD(ERROR, domid, "device already exists in xenstore"); >>> + aodev->action = LIBXL__DEVICE_ACTION_ADD; /* for error message */ >>> + rc = ERROR_DEVICE_EXISTS; >>> + goto out; >>> + } >>> + >>> + if (aodev->update_json) { >>> + rc = device_add_domain_config(gc, domid, dt, type); >>> + if (rc) goto out; >>> + } >>> + >>> + if (dt->set_xenstore_config) { >>> + rc = dt->set_xenstore_config(gc, domid, type); >>> + if (rc) goto out; >>> + } >>> + >> >> This has changed the locking hierarchy we define in libxl_internal.h. >> See libxl_internal.h:L2592. >> >> Either you need to preserve the hierarchy or you need to prove the >> correctness of the new approach. The former is probably easier. > > Actually my the first patch probably was done on the old codebase > which doesn't have locking in add function. So new approach is > definitely wrong and I will use former one. Please ignore my above comment. Actually it looks like my new approach changes former behavior. I will rework this function to match former one. Actually new approach > > -- > Best Regards, > Oleksandr Grytsov. -- Best Regards, Oleksandr Grytsov. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |