[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] [IOEMU] Fix wrong INTx for pass-through device



On Mon, Dec 28, 2009 at 03:04:59PM +0800, Zhai, Edwin wrote:
> Simon,
> For the pass-through device's INTx emulation, we follow the policy:
> if virtual function 0, use INTA#, otherwise use hardware value.
> However, this policy only apply when bind_pt_pci_irq to xen, and
> always use physical value when exporting to guest. This discrepancy
> cause different INTx, thus different GSI in xen and guest, so that
> interrupts never got injected to guest. E.g. when assigning a USB
> controller with non-zero function(00:1d.2) to guest as 00:4.0, xen
> will see INTA#, while guest see INTC#.
> 
> This simple patch can fix it. Could you pls. review it?

Hi Edwin,

that seems reasonable to me. I will have time to review
this more thoroughly tomorrow.

> 
> Thanks,
> 
> -- 
> best rgds,
> edwin
> 

> Signed-Off-By: Zhai Edwin <edwin.zhai@xxxxxxxxx>
> 
> diff --git a/hw/pass-through.c b/hw/pass-through.c
> index e7bd386..a08c0bf 100644
> --- a/hw/pass-through.c
> +++ b/hw/pass-through.c
> @@ -2710,7 +2710,8 @@ 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)
>  {
> -    return ptdev->dev.config[real_offset];
> +    /* Translate xen INTx value to hw */
> +    return pci_intx(ptdev) + 1;
>  }
>  
>  /* initialize BAR */

> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.