[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 13/15] libxl: call hotplug scripts for nic devices from libxl
Roger Pau Monne writes ("[PATCH v2 13/15] libxl: call hotplug scripts for nic devices from libxl"): > Since most of the needed work is already done in previous patches, > this patch only contains the necessary code to call hotplug scripts > for nic devices, that should be called when the device is added or > removed from a guest. > +libxl_nic_type libxl__nic_type(libxl__gc *gc, libxl__device *dev) > +{ > + char *snictype, *be_path; > + libxl_nic_type nictype; > + > + be_path = libxl__device_backend_path(gc, dev); > + snictype = libxl__xs_read(gc, XBT_NULL, > + GCSPRINTF("%s/%s", be_path, "type")); > + if (!snictype) { > + LOGE(ERROR, "unable to read nictype from %s", be_path); > + return -1; Please let us not have any more functions that return -1. Do you mean ERROR_FAIL ? > @@ -806,7 +827,18 @@ static void device_hotplug_fork_cb(libxl__egc *egc, > libxl__ev_child *child, > : LIBXL__LOG_WARNING, > aodev->what, pid, status); > aodev->rc = ERROR_FAIL; > + goto out; > } > + > + if (aodev->dev->backend_kind == LIBXL__DEVICE_KIND_VIF && > + libxl__nic_type(gc, aodev->dev) == LIBXL_NIC_TYPE_IOEMU && And you need to handle the error here. > + !aodev->vif_executed) { > + aodev->vif_executed = 1; > + device_hotplug(egc, aodev); > + return; > + } This logic surrounding vif_executed is rather opaque. Are you trying to run this whole lot twice so that you can run two lots of scripts ? If so then perhaps the hotplug helper should simply take a counter, so that we don't expose this vif abstraction thing ? And it would be applicable to everything, not just vifs. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |