diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/msi.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 2a119f8d0dc6..91fed543fc84 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -723,27 +723,21 @@ void msi_remove_pci_irq_vectors(struct pci_dev* dev) msi_free_irq(dev, dev->first_msi_irq); } if (dev->msix_enabled) { - int irq, head, tail = 0, warning = 0; + int irq, head, tail = 0; void __iomem *base = NULL; irq = head = dev->first_msi_irq; while (head != tail) { tail = get_irq_msi(irq)->link.tail; base = get_irq_msi(irq)->mask_base; - if (irq_has_action(irq)) - warning = 1; - else if (irq != head) /* Release MSI-X irq */ + + BUG_ON(irq_has_action(irq)); + + if (irq != head) /* Release MSI-X irq */ msi_free_irq(dev, irq); irq = tail; } msi_free_irq(dev, irq); - if (warning) { - iounmap(base); - printk(KERN_WARNING "PCI: %s: msi_remove_pci_irq_vectors() " - "called without free_irq() on all MSI-X irqs\n", - pci_name(dev)); - BUG_ON(warning > 0); - } } } |