mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
xend: requested_vslots is no longer needed
...following removal of the boot-time pci passthru protocol. Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
1 parent
894ea3d395
commit
36b33a52e7
6 files changed
+16
-36
No files matched your search
@@ -146,20 +146,6 @@ def parse_pci_name(pci_name_string):
|
||||
|
||||
return (domain, bus, slot, func)
|
||||
|
||||
def assigned_or_requested_vslot(dev):
|
||||
if isinstance(dev, types.DictType):
|
||||
if dev.has_key("vslot"):
|
||||
return dev["vslot"]
|
||||
if dev.has_key("requested_vslot"):
|
||||
return dev["requested_vslot"]
|
||||
elif isinstance(dev, (types.ListType, types.TupleType)):
|
||||
vslot = sxp.child_value(dev, 'vslot', None)
|
||||
if not vslot:
|
||||
vslot = sxp.child_value(dev, 'requested_vslot', None)
|
||||
if vslot:
|
||||
return vslot
|
||||
raise PciDeviceVslotMissing("%s" % dev)
|
||||
|
||||
def find_sysfs_mnt():
|
||||
try:
|
||||
return utils.find_sysfs_mount()
|
||||
@@ -379,7 +365,7 @@ class PciDeviceVslotMissing(Exception):
|
||||
def __init__(self,msg):
|
||||
self.message = msg
|
||||
def __str__(self):
|
||||
return 'pci: no vslot or requested_vslot: ' + self.message
|
||||
return 'pci: no vslot: ' + self.message
|
||||
|
||||
class PciDevice:
|
||||
def __init__(self, domain, bus, slot, func):
|
||||
|
||||
@@ -36,7 +36,6 @@ from xen.xend.xenstore.xstransact import xstransact
|
||||
from xen.xend.server.BlktapController import blktap_disk_types
|
||||
from xen.xend.server.netif import randomMAC
|
||||
from xen.util.blkif import blkdev_name_to_number, blkdev_uname_to_file
|
||||
from xen.util.pci import assigned_or_requested_vslot
|
||||
from xen.util import xsconstants
|
||||
import xen.util.auxbin
|
||||
|
||||
@@ -1288,7 +1287,7 @@ class XendConfig(dict):
|
||||
dpci_record = {
|
||||
'VM': self['uuid'],
|
||||
'PPCI': ppci_uuid,
|
||||
'hotplug_slot': pci_dev.get('requested_vslot', 0)
|
||||
'hotplug_slot': pci_dev.get('vslot', 0)
|
||||
}
|
||||
|
||||
dpci_opts = pci_dev.get('opts')
|
||||
@@ -1858,7 +1857,7 @@ class XendConfig(dict):
|
||||
dpci_record = {
|
||||
'VM': self['uuid'],
|
||||
'PPCI': ppci_uuid,
|
||||
'hotplug_slot': pci_dev.get('requested_vslot', 0)
|
||||
'hotplug_slot': pci_dev.get('vslot', 0)
|
||||
}
|
||||
|
||||
dpci_opts = pci_dev.get('opts')
|
||||
@@ -2131,7 +2130,7 @@ class XendConfig(dict):
|
||||
bus = sxp.child_value(dev, 'bus')
|
||||
slot = sxp.child_value(dev, 'slot')
|
||||
func = sxp.child_value(dev, 'func')
|
||||
vslot = assigned_or_requested_vslot(dev)
|
||||
vslot = sxp.child_value(dev, 'vslot')
|
||||
opts = ''
|
||||
for opt in sxp.child_value(dev, 'opts', []):
|
||||
if opts:
|
||||
|
||||
@@ -39,7 +39,7 @@ from xen.util import asserts, auxbin
|
||||
from xen.util.blkif import blkdev_uname_to_file, blkdev_uname_to_taptype
|
||||
import xen.util.xsm.xsm as security
|
||||
from xen.util import xsconstants
|
||||
from xen.util.pci import assigned_or_requested_vslot, serialise_pci_opts
|
||||
from xen.util.pci import serialise_pci_opts
|
||||
|
||||
from xen.xend import balloon, sxp, uuid, image, arch
|
||||
from xen.xend import XendOptions, XendNode, XendConfig
|
||||
@@ -641,10 +641,9 @@ class XendDomainInfo:
|
||||
pci_conf = self.info['devices'][dev_uuid][1]
|
||||
pci_devs = pci_conf['devs']
|
||||
for x in pci_devs:
|
||||
x_vslot = assigned_or_requested_vslot(x)
|
||||
if (int(x_vslot, 16) == int(new_dev['requested_vslot'], 16) and
|
||||
int(x_vslot, 16) != AUTO_PHP_SLOT):
|
||||
raise VmError("vslot %s already have a device." % (new_dev['requested_vslot']))
|
||||
if (int(x['vslot'], 16) == int(new_dev['vslot'], 16) and
|
||||
int(x['vslot'], 16) != AUTO_PHP_SLOT):
|
||||
raise VmError("vslot %s already have a device." % (new_dev['vslot']))
|
||||
|
||||
if (int(x['domain'], 16) == int(new_dev['domain'], 16) and
|
||||
int(x['bus'], 16) == int(new_dev['bus'], 16) and
|
||||
@@ -747,17 +746,14 @@ class XendDomainInfo:
|
||||
new_dev['bus'],
|
||||
new_dev['slot'],
|
||||
new_dev['func'],
|
||||
# vslot will be used when activating a
|
||||
# previously activated domain.
|
||||
# Otherwise requested_vslot will be used.
|
||||
assigned_or_requested_vslot(new_dev),
|
||||
new_dev['vslot'],
|
||||
opts)
|
||||
self.image.signalDeviceModel('pci-ins', 'pci-inserted', bdf_str)
|
||||
|
||||
vslot = xstransact.Read("/local/domain/0/device-model/%i/parameter"
|
||||
% self.getDomid())
|
||||
else:
|
||||
vslot = new_dev['requested_vslot']
|
||||
vslot = new_dev['vslot']
|
||||
|
||||
return vslot
|
||||
|
||||
@@ -859,7 +855,7 @@ class XendDomainInfo:
|
||||
int(x['bus'], 16) == int(dev['bus'], 16) and
|
||||
int(x['slot'], 16) == int(dev['slot'], 16) and
|
||||
int(x['func'], 16) == int(dev['func'], 16) ):
|
||||
vslot = assigned_or_requested_vslot(x)
|
||||
vslot = x['vslot']
|
||||
break
|
||||
if vslot == "":
|
||||
raise VmError("Device %04x:%02x:%02x.%01x is not connected"
|
||||
@@ -1138,8 +1134,7 @@ class XendDomainInfo:
|
||||
#find the pass-through device with the virtual slot
|
||||
devnum = 0
|
||||
for x in pci_conf['devs']:
|
||||
x_vslot = assigned_or_requested_vslot(x)
|
||||
if int(x_vslot, 16) == vslot:
|
||||
if int(x['vslot'], 16) == vslot:
|
||||
break
|
||||
devnum += 1
|
||||
|
||||
|
||||
@@ -74,7 +74,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(assigned_or_requested_vslot(pci_config))
|
||||
vslot = parse_hex(pci_config.get('vslot', 0))
|
||||
|
||||
if pci_config.has_key('opts'):
|
||||
opts = serialise_pci_opts(pci_config['opts'])
|
||||
|
||||
@@ -716,7 +716,7 @@ def configure_pci(config_devs, vals):
|
||||
|
||||
config_pci_bdf = ['dev', ['domain', domain], ['bus', bus], \
|
||||
['slot', slot], ['func', func],
|
||||
['requested_vslot', vslot]]
|
||||
['vslot', vslot]]
|
||||
map(f, d.keys())
|
||||
if len(config_pci_opts)>0:
|
||||
config_pci_bdf.append(['opts', config_pci_opts])
|
||||
|
||||
@@ -2198,7 +2198,7 @@ def xm_pci_list(args):
|
||||
"bus": int(x["bus"], 16),
|
||||
"slot": int(x["slot"], 16),
|
||||
"func": int(x["func"], 16),
|
||||
"vslot": int(assigned_or_requested_vslot(x), 16)
|
||||
"vslot": int(x["vslot"], 16)
|
||||
}
|
||||
devs.append(dev)
|
||||
|
||||
@@ -2500,7 +2500,7 @@ def parse_pci_configuration(args, state, opts = ''):
|
||||
['bus', '0x'+ pci_dev_info['bus']],
|
||||
['slot', '0x'+ pci_dev_info['slot']],
|
||||
['func', '0x'+ pci_dev_info['func']],
|
||||
['requested_vslot', '0x%x' % int(vslot, 16)]]
|
||||
['vslot', '0x%x' % int(vslot, 16)]]
|
||||
if len(opts) > 0:
|
||||
pci_bdf.append(['opts', opts])
|
||||
pci.append(pci_bdf)
|
||||
|
||||