diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/xen/xen-pciback/pciback_ops.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/xen/xen-pciback/pciback_ops.c b/drivers/xen/xen-pciback/pciback_ops.c index 029f33ddb8bf..d0696ce31e9b 100644 --- a/drivers/xen/xen-pciback/pciback_ops.c +++ b/drivers/xen/xen-pciback/pciback_ops.c | |||
| @@ -70,6 +70,13 @@ static void xen_pcibk_control_isr(struct pci_dev *dev, int reset) | |||
| 70 | enable ? "enable" : "disable"); | 70 | enable ? "enable" : "disable"); |
| 71 | 71 | ||
| 72 | if (enable) { | 72 | if (enable) { |
| 73 | /* | ||
| 74 | * The MSI or MSI-X should not have an IRQ handler. Otherwise | ||
| 75 | * if the guest terminates we BUG_ON in free_msi_irqs. | ||
| 76 | */ | ||
| 77 | if (dev->msi_enabled || dev->msix_enabled) | ||
| 78 | goto out; | ||
| 79 | |||
| 73 | rc = request_irq(dev_data->irq, | 80 | rc = request_irq(dev_data->irq, |
| 74 | xen_pcibk_guest_interrupt, IRQF_SHARED, | 81 | xen_pcibk_guest_interrupt, IRQF_SHARED, |
| 75 | dev_data->irq_name, dev); | 82 | dev_data->irq_name, dev); |
