From: Ian Jackson Date: Tue, 4 Aug 2009 14:25:30 +0000 (+0100) Subject: passthrough: Use physical INTX for virtual PCI functions X-Git-Tag: xen-3.4.3-rc5-broken~62 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6b80a2a8075edb610bc84e130a82caf151de4f15;p=qemu-xen-3.4-testing.git passthrough: 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 Signed-off-by: Simon Horman --- diff --git a/hw/pass-through.c b/hw/pass-through.c index f3d033b9..fcc1bb62 100644 --- a/hw/pass-through.c +++ b/hw/pass-through.c @@ -2617,13 +2617,7 @@ static uint32_t pt_status_reg_init(struct pt_dev *ptdev, 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 */