This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [patch] qemu-xen: Use physical INTX for virtual PCI function

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [patch] qemu-xen: Use physical INTX for virtual PCI functions
From: Simon Horman <horms@xxxxxxxxxxxx>
Date: Tue, 28 Jul 2009 11:19:46 +1000
Cc: Tom Rotenberg <tom.rotenberg@xxxxxxxxx>, Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
Delivery-date: Mon, 27 Jul 2009 18:20:12 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
Allow virtual functions to use the legacy interrupt pin of the
corresponding physical device.  This is already half-implemented
by the code that uses pci_read_intx() in pass-through.c. This fills
in a missing piece.

An alternate solution is to reverse the previously applied pci_read_intx()
code and revert to always using INTA. However, that seems likely to lead to
excessive sharing of interrupt pins when multi-function pass-through is

Tested-by: Tom Rotenberg <tom.rotenberg@xxxxxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>


This patch has been applied to the pass-through-multi-function branch of
git://github.com/horms/qemu-xen-3.4-testing.git (git-web:

It is not applicable to the upstream qemu-xen-3.4-testing.git tree.

It is applicable to qemu-xen-3.4-unstable.git, Ian please consider applying.

It does not introduce any incompatibilities with xend.

Index: ioemu-remote/hw/pass-through.c
--- ioemu-remote.orig/hw/pass-through.c 2009-07-27 21:57:24.000000000 +1000
+++ ioemu-remote/hw/pass-through.c      2009-07-27 21:58:18.000000000 +1000
@@ -2617,13 +2617,7 @@ static uint32_t pt_status_reg_init(struc
 static uint32_t pt_irqpin_reg_init(struct pt_dev *ptdev,
         struct pt_reg_info_tbl *reg, uint32_t real_offset)
-    int reg_field = 0;
-    /* set Interrupt Pin register to use INTA# if it has */
-    if (ptdev->dev.config[real_offset])
-        reg_field = 0x01;
-    return reg_field;
+    return ptdev->dev.config[real_offset];
 /* initialize BAR */

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [patch] qemu-xen: Use physical INTX for virtual PCI functions, Simon Horman <=