aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2007-03-22 06:51:27 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-05-02 22:02:35 -0400
commite387b9eefe89a23245f2446f947529cce5d6db35 (patch)
treecfa287874b4295f41b2d72aff2f0c227794723ef /drivers/pci/msi.c
parent54eee4c5bf553ad54ba200d00487b61eb6b155f6 (diff)
MSI: Simplify BUG() handling in pci_disable_msi()
Although it might be nice to do a printk before BUG'ing, it's really not necessary, and it complicates the code. 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>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index a4ef93ea4c5..9213c57cd96 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -572,18 +572,15 @@ void pci_disable_msi(struct pci_dev* dev)
572 if (!entry || !entry->dev || entry->msi_attrib.type != PCI_CAP_ID_MSI) { 572 if (!entry || !entry->dev || entry->msi_attrib.type != PCI_CAP_ID_MSI) {
573 return; 573 return;
574 } 574 }
575 if (irq_has_action(dev->first_msi_irq)) { 575
576 printk(KERN_WARNING "PCI: %s: pci_disable_msi() called without " 576 BUG_ON(irq_has_action(dev->first_msi_irq));
577 "free_irq() on MSI irq %d\n", 577
578 pci_name(dev), dev->first_msi_irq); 578 default_irq = entry->msi_attrib.default_irq;
579 BUG_ON(irq_has_action(dev->first_msi_irq)); 579 msi_free_irq(dev, dev->first_msi_irq);
580 } else { 580
581 default_irq = entry->msi_attrib.default_irq; 581 /* Restore dev->irq to its default pin-assertion irq */
582 msi_free_irq(dev, dev->first_msi_irq); 582 dev->irq = default_irq;
583 583
584 /* Restore dev->irq to its default pin-assertion irq */
585 dev->irq = default_irq;
586 }
587 dev->first_msi_irq = 0; 584 dev->first_msi_irq = 0;
588} 585}
589 586