aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2007-03-22 21:51:31 +1100
committerGreg Kroah-Hartman <gregkh@suse.de>2007-05-02 19:02:36 -0700
commit00ba16ab2658afe11d4fdcaf16a331292c44bee6 (patch)
tree763d31188d443026071ccce1a83918efc4bf830d
parentc31af3987020eeb1facf64d702dcf39e6c7382e6 (diff)
MSI: Simplify BUG() handling in msi_remove_pci_irq_vectors() part 2
Although it might be nice to do a printk before BUG'ing, it's really not necessary, and it complicates the code. The behaviour has changed slightly, in that before we set a flag if the irq had an action, and continued freeing the other irqs. But as I see it that's all irrelevant because we end up BUG'ing anyway. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Acked-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/pci/msi.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 2a119f8d0dc..91fed543fc8 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);
- }
}
}