Skip to content

Commit

Permalink
MSI: Consolidate BUG_ON()s.
Browse files Browse the repository at this point in the history
When freeing MSIs and MSI-Xs, we BUG_ON() if the irq has not been
freed, ie. if it still has an action. We can consolidate all of these
BUG_ON()s into msi_free_irqs() as all the code paths lead there almost
immediately 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>
  • Loading branch information
Michael Ellerman authored and Greg Kroah-Hartman committed May 3, 2007
1 parent fc4afc7 commit 7ede9c1
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions drivers/pci/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,8 +573,6 @@ void pci_disable_msi(struct pci_dev* dev)
return;
}

BUG_ON(irq_has_action(dev->first_msi_irq));

default_irq = entry->msi_attrib.default_irq;
msi_free_irq(dev, dev->first_msi_irq);

Expand All @@ -590,6 +588,8 @@ static int msi_free_irq(struct pci_dev* dev, int irq)
int head, entry_nr, type;
void __iomem *base;

BUG_ON(irq_has_action(irq));

entry = get_irq_msi(irq);
if (!entry || entry->dev != dev) {
return -EINVAL;
Expand Down Expand Up @@ -682,8 +682,6 @@ static void msix_free_all_irqs(struct pci_dev *dev)
while (head != tail) {
tail = get_irq_msi(irq)->link.tail;

BUG_ON(irq_has_action(irq));

if (irq != head)
msi_free_irq(dev, irq);
irq = tail;
Expand Down Expand Up @@ -723,10 +721,8 @@ void msi_remove_pci_irq_vectors(struct pci_dev* dev)
if (!pci_msi_enable || !dev)
return;

if (dev->msi_enabled) {
BUG_ON(irq_has_action(dev->first_msi_irq));
if (dev->msi_enabled)
msi_free_irq(dev, dev->first_msi_irq);
}

if (dev->msix_enabled)
msix_free_all_irqs(dev);
Expand Down

0 comments on commit 7ede9c1

Please sign in to comment.