Skip to content

Commit

Permalink
MSI: Simplify BUG() handling in pci_disable_msix()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michael Ellerman authored and Greg Kroah-Hartman committed May 3, 2007
1 parent e387b9e commit 54bc6c0
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions drivers/pci/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
}

Expand Down

0 comments on commit 54bc6c0

Please sign in to comment.