From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: PCI passthrough w/ shared IRQ in xen/master Date: Fri, 19 Feb 2010 12:07:08 -0500 Message-ID: <20100219170708.GA11497@phenom.dumpdata.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Michael D Labriola Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Fri, Feb 19, 2010 at 10:56:08AM -0500, Michael D Labriola wrote: > I cannot pass a PCI card w/ a shared IRQ to a domU. > > If my PCI card is in a different slot, and gets a different IRQ, it works. > But in this one particular slot, it gets an IRQ that's shared with a > bunch of other bits of gear (USB, firewire, and ATA controller). With the > shared IRQ, not only can I not pass the card to my domU, my dom0 freaks > and dies as well... > > Both my dom0 and domU are using the latest xen/master pv_ops kernel and > I'm using Xen 3.4.2 (for now). My domU is a pv domain. There is a missing patch that I haven't pushed in the pcifront branch: diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c index e138053..923de2e 100644 --- a/arch/x86/pci/xen.c +++ b/arch/x86/pci/xen.c @@ -25,7 +25,7 @@ static int xen_pcifront_enable_irq(struct pci_dev *dev) if (dev->irq < 0) return -EINVAL; - rc = xen_allocate_pirq(dev->irq, 0, "pcifront"); + rc = xen_allocate_pirq(dev->irq, 1 /* share */, "pcifront"); if (rc < 0) { dev_warn(&dev->dev, "Xen PCI IRQ: %d, failed to register:%d\n", dev->irq, rc);