xen/21653-xend-mac-addr.patch
Charles Arnold ff4b346ede - bnc#620694 - Xen yast vm-install for existing paravirtualized
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
2010-07-14 22:43:11 +00:00

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 = \