From: Konrad Rzeszutek Wilk Date: Wed, 16 Feb 2011 20:43:25 +0000 (-0500) Subject: xen/pciback: Don't setup an fake IRQ handler for SR-IOV devices. X-Git-Tag: upstream/snapshot3+hdmi~9626^2^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e17ab35f05cb8b3d19c70454a41ea67207caf484;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git xen/pciback: Don't setup an fake IRQ handler for SR-IOV devices. If we try to setup an fake IRQ handler for legacy interrupts for devices that only have MSI-X (most if not all SR-IOV cards), we will fail with this: pciback[0000:01:10.0]: failed to install fake IRQ handler for IRQ 0! (rc:-38) Since those cards don't have anything in dev->irq. Signed-off-by: Konrad Rzeszutek Wilk --- diff --git a/drivers/xen/xen-pciback/pciback_ops.c b/drivers/xen/xen-pciback/pciback_ops.c index 6c398fd..28a2a55 100644 --- a/drivers/xen/xen-pciback/pciback_ops.c +++ b/drivers/xen/xen-pciback/pciback_ops.c @@ -48,6 +48,13 @@ void pciback_control_isr(struct pci_dev *dev, int reset) if (enable) dev_data->irq = dev->irq; + /* + * SR-IOV devices in all use MSI-X and have no legacy + * interrupts, so inhibit creating a fake IRQ handler for them. + */ + if (dev_data->irq == 0) + goto out; + dev_dbg(&dev->dev, "%s: #%d %s %s%s %s-> %s\n", dev_data->irq_name, dev_data->irq,