[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [patch] passthrough: Fix PCI hot-plug option parsing
When a PCI function is passed-through extra options may be passed through. In the case of boot-time PCI pass-through the documented format is: [dom:]bus:dev.slot[@vslot][[,opt]...] e.g. 00:01.00.1@7,msitranslate=1 In the case of PCI hot-plug the xm pci-attach command take the following arguments: [-o opt[,opt]...] [dom:]bus:dev.slot [vslot] e.g. -o msitranslate=1 00:01.00.1 7 These xm ends up passing these to xem-qemu as: [dom:]bus:dev.slot[[,opt]...][@vslot] e.g. 00:01.00.1,msitranslate=1@7 Note that the option and the vslot have are transposed when compared to the format used by boot-time PCI pass-through. The parser inside qemu-xen can only handle the format used by boot-time PCI pass-through and because of this ignores any options passed by hot-plug. This patch alters format used by hot-plug to match the parser. Cc: Dexuan Cui <dexuan.cui@xxxxxxxxx> Cc: Qing He <qing.he@xxxxxxxxx> Cc: Yuji Shimada <shimada-yxb@xxxxxxxxxxxxxxx> Cc: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx> Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx> --- This bug does not appear be a recent regression. This bug seems important enough to fix for 3.4, though it could be argued that if it hasn't been noticed for a while there aren't many (any?) users of this. Index: xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/XendDomainInfo.py 2009-05-13 11:07:38.000000000 +1000 +++ xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py 2009-05-13 11:11:36.000000000 +1000 @@ -706,12 +706,12 @@ class XendDomainInfo: config_opts = map(lambda (x, y): x+'='+y, config_opts) opts = ',' + reduce(lambda x, y: x+','+y, config_opts) - bdf_str = "%s:%s:%s.%s%s@%s" % (new_dev['domain'], + bdf_str = "%s:%s:%s.%s@%s%s" % (new_dev['domain'], new_dev['bus'], new_dev['slot'], new_dev['func'], - opts, - new_dev['vslot']) + new_dev['vslot'], + opts) self.image.signalDeviceModel('pci-ins', 'pci-inserted', bdf_str) vslot = xstransact.Read("/local/domain/0/device-model/%i/parameter" _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |