ff4b346ede
disk fails with UnboundLocalError: local variable 'dev_type' referenced before assignment 21678-xend-mac-fix.patch - bnc#586221 - cannot add DomU with USB host controller defined domu-usb-controller.patch (Chun Yan Liu) - Upstream patches from Jan 21151-trace-bounds-check.patch 21627-cpuidle-wrap.patch 21643-vmx-vpmu-pmc-offset.patch 21682-trace-buffer-range.patch 21683-vtd-kill-timer-conditional.patch 21693-memevent-64bit-only.patch 21695-trace-t_info-readonly.patch 21698-x86-pirq-range-check.patch 21699-p2m-query-for-type-change.patch 21700-32on64-vm86-gpf.patch 21705-trace-printk.patch 21706-trace-security.patch 21712-amd-osvw.patch 21744-x86-cpufreq-range-check.patch - bnc #599550 - Xen cannot distinguish the status of 'pause' addcommand_domstate.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=63
47 lines
2.3 KiB
Diff
47 lines
2.3 KiB
Diff
# HG changeset patch
|
|
# User Ian Jackson <Ian.Jackson@eu.citrix.com>
|
|
# Date 1277219220 -3600
|
|
# Node ID 9da3abe88c90bd8ec48963a9ec537a8871e266db
|
|
# Parent 2ad890d46cb8a11fc6ea329126d398021307e627
|
|
Check "mac" address sooner in device_create function, before doing device_add.
|
|
|
|
In XendDomainInfo.py device_create function, when device type is
|
|
"vif", it has a paragraph to check the validity of "mac"
|
|
address. Before checking validity, device_add has been done. But after
|
|
checking validity, if the mac address is invlid, it raises VmError and
|
|
exits directly without doing clean work like removing the device item
|
|
from config info. This will cause that the incorrect mac address is
|
|
saved into VM Config file and VM fails to restart. If check "mac"
|
|
validity before doing device_add, there will be no problem.
|
|
|
|
Signed-off-by Chunyan Liu <CYLiu@novell.com>
|
|
|
|
Index: xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
|
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
|
@@ -847,11 +847,6 @@ class XendDomainInfo:
|
|
@type dev_config: SXP object (parsed config)
|
|
"""
|
|
log.debug("XendDomainInfo.device_create: %s" % scrub_password(dev_config))
|
|
- dev_type = sxp.name(dev_config)
|
|
- dev_uuid = self.info.device_add(dev_type, cfg_sxp = dev_config)
|
|
- dev_config_dict = self.info['devices'][dev_uuid][1]
|
|
- log.debug("XendDomainInfo.device_create: %s" % scrub_password(dev_config_dict))
|
|
-
|
|
if dev_type == 'vif':
|
|
for x in dev_config:
|
|
if x != 'vif' and x[0] == 'mac':
|
|
@@ -859,6 +854,11 @@ class XendDomainInfo:
|
|
log.error("Virtual network interface creation error - invalid MAC Address entered: %s", x[1])
|
|
raise VmError("Cannot create a new virtual network interface - MAC address is not valid!");
|
|
|
|
+ dev_type = sxp.name(dev_config)
|
|
+ dev_uuid = self.info.device_add(dev_type, cfg_sxp = dev_config)
|
|
+ dev_config_dict = self.info['devices'][dev_uuid][1]
|
|
+ log.debug("XendDomainInfo.device_create: %s" % scrub_password(dev_config_dict))
|
|
+
|
|
if self.domid is not None:
|
|
try:
|
|
dev_config_dict['devid'] = devid = \
|