[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [patch] xm: Fix hot-unplug of statically-assigned devices
Prior to changset 19510:5c69f98c348e - 'xm, xend: Replace "vslt" with "vslot"', both vslt and vslot were used in the xm code, often fairly arbitrarily. However, in the dictionary that describes a pci function both vslt and vslot were present. vslt stored the slot assigned to the function. And vslot stored the slot the user requested for the function, or AUTO_PHP_SLOT if no slot was requested. With the renaming these two values got merged into a single entry. This patch un-merges them by renaming the what was vslot to requested_vslot. So an out of chronological order list of name changes is: 'vslot' -> 'requested_vslot' 'vslt' -> 'vslot' Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx> --- I have given this only light testing, I would appreciate it if others could look at it. This bug should probably be fixed for 3.4.0 This bug is in Bugzilla as Bug #1446 http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1446 Index: xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/XendDomainInfo.py 2009-04-23 02:53:43.000000000 +1000 +++ xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py 2009-04-23 02:57:07.000000000 +1000 @@ -809,7 +809,7 @@ class XendDomainInfo: existing_dev_uuid = sxp.child_value(existing_dev_info, 'uuid') existing_pci_conf = self.info['devices'][existing_dev_uuid][1] existing_pci_devs = existing_pci_conf['devs'] - vslot = AUTO_PHP_SLOT_STR + vslot = "" for x in existing_pci_devs: if ( int(x['domain'], 16) == int(dev['domain'], 16) and int(x['bus'], 16) == int(dev['bus'], 16) and @@ -817,7 +817,7 @@ class XendDomainInfo: int(x['func'], 16) == int(dev['func'], 16) ): vslot = x['vslot'] break - if vslot == AUTO_PHP_SLOT_STR: + if vslot == "": raise VmError("Device %04x:%02x:%02x.%01x is not connected" % (int(dev['domain'],16), int(dev['bus'],16), int(dev['slot'],16), int(dev['func'],16))) Index: xen-unstable.hg/tools/python/xen/xend/XendConfig.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/XendConfig.py 2009-04-23 02:44:49.000000000 +1000 +++ xen-unstable.hg/tools/python/xen/xend/XendConfig.py 2009-04-23 02:44:54.000000000 +1000 @@ -1285,7 +1285,7 @@ class XendConfig(dict): dpci_record = { 'VM': self['uuid'], 'PPCI': ppci_uuid, - 'hotplug_slot': pci_dev.get('vslot', 0) + 'hotplug_slot': pci_dev.get('requested_vslot', 0) } dpci_opts = pci_dev.get('opts') @@ -1847,7 +1847,7 @@ class XendConfig(dict): dpci_record = { 'VM': self['uuid'], 'PPCI': ppci_uuid, - 'hotplug_slot': pci_dev.get('vslot', 0) + 'hotplug_slot': pci_dev.get('requested_vslot', 0) } dpci_opts = pci_dev.get('opts') Index: xen-unstable.hg/tools/python/xen/xend/server/pciif.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/server/pciif.py 2009-04-23 02:44:49.000000000 +1000 +++ xen-unstable.hg/tools/python/xen/xend/server/pciif.py 2009-04-23 03:04:32.000000000 +1000 @@ -79,7 +79,7 @@ class PciController(DevController): bus = parse_hex(pci_config.get('bus', 0)) slot = parse_hex(pci_config.get('slot', 0)) func = parse_hex(pci_config.get('func', 0)) - vslot = parse_hex(pci_config.get('vslot', 0)) + requested_vslot = parse_hex(pci_config.get('requested_vslot', 0)) opts = pci_config.get('opts', '') if len(opts) > 0: @@ -90,7 +90,7 @@ class PciController(DevController): back['dev-%i' % pcidevid] = "%04x:%02x:%02x.%01x" % \ (domain, bus, slot, func) back['uuid-%i' % pcidevid] = pci_config.get('uuid', '') - back['vslot-%i' % pcidevid] = "%02x" % vslot + back['vslot-%i' % pcidevid] = "%02x" % requested_vslot pcidevid += 1 if vslots != "": Index: xen-unstable.hg/tools/python/xen/xm/create.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xm/create.py 2009-04-23 02:44:49.000000000 +1000 +++ xen-unstable.hg/tools/python/xen/xm/create.py 2009-04-23 02:44:54.000000000 +1000 @@ -710,7 +710,8 @@ def configure_pci(config_devs, vals): config_pci_opts.append([k, d[k]]) config_pci_bdf = ['dev', ['domain', domain], ['bus', bus], \ - ['slot', slot], ['func', func], ['vslot', vslot]] + ['slot', slot], ['func', func], + ['requested_vslot', vslot]] map(f, d.keys()) if len(config_pci_opts)>0: config_pci_bdf.append(['opts', config_pci_opts]) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |