]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commitdiff
xm: Fix hot-unplug of statically-assigned devices
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 23 Apr 2009 09:11:33 +0000 (10:11 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 23 Apr 2009 09:11:33 +0000 (10:11 +0100)
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@verge.net.au>
tools/python/xen/xend/XendConfig.py
tools/python/xen/xend/server/pciif.py
tools/python/xen/xm/create.py

index 591a22ddea0fc95128f5bb93a4b831f5d8c53196..02b7d91955f46e7c9cca2b240cab81754d05976a 100644 (file)
@@ -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 157926245992c665115c95081e8a352f8a235949..1515c9f05dcc3e4196504e59243c63c1e96448e6 100644 (file)
@@ -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 61655ea61c21989bd7c1b652207d9b368eb3892d..b663fafd31efd918ec054d841ba0c842434a8524 100644 (file)
@@ -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])