Message ID | 1467634422-18938-1-git-send-email-wei.liu2@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Jul 04, 2016 at 01:13:42PM +0100, Wei Liu wrote: > This basically replicates the same logic in libxl_linux.c but with one > change -- only test num_exec == 0 in nic hotplug case because NetBSD let > QEMU call a script itself. Without this patch libxl will loop > indefinitely trying to execute hotplug script. > > Reported-by: John Nemeth <jnemeth@cue.bc.ca> > Signed-off-by: Wei Liu <wei.liu2@citrix.com> > Acked-by: Roger Pau Monné <roger.pau@citrix.com> Queued. I think Roger's ack is sufficient for BSD related code and John confirmed in the other thread this fixed his problem.
diff --git a/tools/libxl/libxl_netbsd.c b/tools/libxl/libxl_netbsd.c index 096c057..a79b8aa 100644 --- a/tools/libxl/libxl_netbsd.c +++ b/tools/libxl/libxl_netbsd.c @@ -68,7 +68,28 @@ int libxl__get_hotplug_script_info(libxl__gc *gc, libxl__device *dev, switch (dev->backend_kind) { case LIBXL__DEVICE_KIND_VBD: + if (num_exec != 0) { + LOG(DEBUG, "num_exec %d, not running hotplug scripts", num_exec); + rc = 0; + goto out; + } + rc = libxl__hotplug(gc, dev, args, action); + if (!rc) rc = 1; + break; case LIBXL__DEVICE_KIND_VIF: + /* + * If domain has a stubdom we don't have to execute hotplug scripts + * for emulated interfaces + * + * NetBSD let QEMU call a script to plug emulated nic, so + * only test if num_exec == 0 in that case. + */ + if ((num_exec != 0) || + (libxl_get_stubdom_id(CTX, dev->domid) && num_exec)) { + LOG(DEBUG, "num_exec %d, not running hotplug scripts", num_exec); + rc = 0; + goto out; + } rc = libxl__hotplug(gc, dev, args, action); if (!rc) rc = 1; break;