Simon Horman
2009-Jul-28 01:19 UTC
[Xen-devel] [patch] qemu-xen: Use physical INTX for virtual PCI functions
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 used. Tested-by: Tom Rotenberg <tom.rotenberg@gmail.com> Signed-off-by: Simon Horman <horms@verge.net.au> --- 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: http://github.com/horms/qemu-xen-3.4-testing/tree/pass-through-multi-function) 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 Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel