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>
This commit is contained in:
parent
c31af39870
commit
00ba16ab26
1 changed files with 5 additions and 11 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue