Qing He
2009-Sep-04  09:29 UTC
[Xen-devel] [PATCH] xend: passthrough: fix physdev_map_pirq invocation
For those devices not having INTx (like VFs), avoid calling map_pirq,
otherwise the guest cannot be started successfully.
Also avoid calling this hypercall for hvm guest, this is done in the
device model.
Signed-off-by: Qing He <qing.he@intel.com>
---
 pciif.py |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
diff -r 8f81bdd57afe tools/python/xen/xend/server/pciif.py
--- a/tools/python/xen/xend/server/pciif.py	Thu Sep 03 09:51:37 2009 +0100
+++ b/tools/python/xen/xend/server/pciif.py	Fri Sep 04 17:24:32 2009 +0800
@@ -345,12 +345,13 @@ class PciController(DevController):
                 if rc<0:
                     raise VmError((''pci: failed to remove msi-x
iomem''))
 
-        rc = xc.physdev_map_pirq(domid = fe_domid,
-                               index = dev.irq,
-                               pirq  = dev.irq)
-        if rc < 0:
-            raise VmError((''pci: failed to map irq on device
''+
-                        ''%s - errno=%d'')%(dev.name,rc))
+        if not self.vm.info.is_hvm() and dev.irq:
+            rc = xc.physdev_map_pirq(domid = fe_domid,
+                                   index = dev.irq,
+                                   pirq  = dev.irq)
+            if rc < 0:
+                raise VmError((''pci: failed to map irq on device
''+
+                            ''%s - errno=%d'')%(dev.name,rc))
         if dev.irq>0:
             log.debug(''pci: enabling irq %d''%dev.irq)
             rc = xc.domain_irq_permission(domid =  fe_domid, pirq = dev.irq,
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel