MSI: Simplify BUG() handling in pci_disable_msix()
authorMichael Ellerman <michael@ellerman.id.au>
Thu, 22 Mar 2007 10:51:27 +0000 (21:51 +1100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 3 May 2007 02:02:36 +0000 (19:02 -0700)
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>
drivers/pci/msi.c

index 9213c57cd968a3ce4931762c10570112fb862c4b..db452319be90b968cd67625bcea753a38f566e94 100644 (file)
@@ -676,7 +676,7 @@ int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec)
 
 void pci_disable_msix(struct pci_dev* dev)
 {
-       int irq, head, tail = 0, warning = 0;
+       int irq, head, tail = 0;
 
        if (!pci_msi_enable)
                return;
@@ -693,19 +693,14 @@ void pci_disable_msix(struct pci_dev* dev)
        irq = head = dev->first_msi_irq;
        while (head != tail) {
                tail = get_irq_msi(irq)->link.tail;
-               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) {
-               printk(KERN_WARNING "PCI: %s: pci_disable_msix() called without "
-                       "free_irq() on all MSI-X irqs\n",
-                       pci_name(dev));
-               BUG_ON(warning > 0);
-       }
        dev->first_msi_irq = 0;
 }