From be37d59195b6c4d8e739d153e352543de27f6da9 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Thu, 7 Jun 2012 18:45:22 +0100 Subject: [PATCH] xend: do not run a hotplug script from qemu on Linux The current vif-hotplug-common.sh for renaming the tap device is failing because it is racing with this script and therefore the device is unexpectedly up when we come to rename it. Fix this in the same way as libxl does, by disabling the script (only on Linux). Signed-off-by: Ian Campbell Acked-by: Ian Jackson Committed-by: Ian Jackson --- tools/python/xen/xend/image.py | 9 +++++++-- tools/python/xen/xend/osdep.py | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index e08417282d..832c16896b 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -919,8 +919,13 @@ class HVMImageHandler(ImageHandler): (nics, mac, model)) vifname = "vif%d.%d-emu" % (self.vm.getDomid(), nics-1) ret.append("-net") - ret.append("tap,vlan=%d,ifname=%s,bridge=%s" % - (nics, vifname, bridge)) + if osdep.tapif_script is not None: + script=",script=%s,downscript=%s" % \ + (osdep.tapif_script, osdep.tapif_script) + else: + script="" + ret.append("tap,vlan=%d,ifname=%s,bridge=%s%s" % + (nics, vifname, bridge, script)) if nics == 0: ret.append("-net") diff --git a/tools/python/xen/xend/osdep.py b/tools/python/xen/xend/osdep.py index 3a09b5244c..b51dd2ee90 100644 --- a/tools/python/xen/xend/osdep.py +++ b/tools/python/xen/xend/osdep.py @@ -30,6 +30,10 @@ _vif_script = { "SunOS": "vif-vnic" } +_tapif_script = { + "Linux": "no", +} + PROC_XEN_BALLOON = '/proc/xen/balloon' SYSFS_XEN_MEMORY = '/sys/devices/system/xen_memory/xen_memory0' @@ -257,6 +261,7 @@ def _get(var, default=None): xend_autorestart = _get(_xend_autorestart) vif_script = _get(_vif_script, "vif-bridge") +tapif_script = _get(_tapif_script) lookup_balloon_stat = _get(_balloon_stat, _linux_balloon_stat) get_cpuinfo = _get(_get_cpuinfo, _linux_get_cpuinfo) prefork = _get(_get_prefork, _default_prefork) -- 2.39.5