WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: "Zhai, Edwin" <edwin.zhai@xxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] [IOEMU] Fix wrong INTx for pass-through device
From: Tom Rotenberg <tom.rotenberg@xxxxxxxxx>
Date: Mon, 28 Dec 2009 16:33:51 +0200
Cc: Simon Horman <horms@xxxxxxxxxxxx>, Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>, Xen Developers <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 28 Dec 2009 06:34:16 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=H2PApqHkgZRFK6vRo33/RUZpHPP9lgdgYDDsoaqZ/3A=; b=BN3sdOpHh4vwGR+zvnpOy23UfuCySq631yTdLq4vTxf/6dGqMR3hYvE0RVxv3ae3RS Ym9fky9DLOdqX9+FHX7Gop4TkwzzjkqZTB/hf74wTmwnmeCndvxiQM9ltWz9vC3OvMTs r1wX92fxEBrwhZTEihWHmxgIQ2RnMdPZqO97k=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=YO4edyYAuwwccN1keg9H2M5ZJ0pViI4JlzSlwp7IKksy/M1+6slepo84m9ZvGxrFJe DcUcMLLNAKxEAeQ8qt1Omjgz4BYtpJbNGAM2Pp1PeKcADIaD1i0WChF/FQppWtItYg9a LHGR1BZaBKrIaOtGTdoEfVhQbZi/jfQSrcSpI=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4B38589B.8060307@xxxxxxxxx>
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>
References: <4B38589B.8060307@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi,

I ran into similar problems last week, and i tried the following fix,
which looks like it kind-of fixed it, does this do the same fix as
your patch?

Here is the patch i used:

--- a/tools/ioemu/hw/pass-through.c     Sun Dec 27 11:56:08 2009 +0200
+++ b/tools/ioemu/hw/pass-through.c     Sun Dec 27 11:56:08 2009 +0200
@@ -4209,8 +4209,14 @@
  */
 uint8_t pci_intx(struct pt_dev *ptdev)
 {
 +#if 0    /* FIX */
      if (!PCI_FUNC(ptdev->dev.devfn))
          return 0;
 +#endif /* FIX */
 +
      return pci_read_intx(ptdev);
}

Tom

On Mon, Dec 28, 2009 at 9:04 AM, Zhai, Edwin <edwin.zhai@xxxxxxxxx> 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?
>
> 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