[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] libxl/netbsd: check num_exec in hotplug function
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@xxxxxxxxx> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: John Nemeth <jnemeth@xxxxxxxxx> Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx> Ian, this is a backport candidate. --- tools/libxl/libxl_netbsd.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |