MSI: Simplify BUG() handling in pci_disable_msix()
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:
committed by
Greg Kroah-Hartman
parent
e387b9eefe
commit
54bc6c0b0e
@@ -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)
|
void pci_disable_msix(struct pci_dev* dev)
|
||||||
{
|
{
|
||||||
int irq, head, tail = 0, warning = 0;
|
int irq, head, tail = 0;
|
||||||
|
|
||||||
if (!pci_msi_enable)
|
if (!pci_msi_enable)
|
||||||
return;
|
return;
|
||||||
@@ -693,19 +693,14 @@ void pci_disable_msix(struct pci_dev* dev)
|
|||||||
irq = head = dev->first_msi_irq;
|
irq = head = dev->first_msi_irq;
|
||||||
while (head != tail) {
|
while (head != tail) {
|
||||||
tail = get_irq_msi(irq)->link.tail;
|
tail = get_irq_msi(irq)->link.tail;
|
||||||
if (irq_has_action(irq))
|
|
||||||
warning = 1;
|
BUG_ON(irq_has_action(irq));
|
||||||
else if (irq != head) /* Release MSI-X irq */
|
|
||||||
|
if (irq != head) /* Release MSI-X irq */
|
||||||
msi_free_irq(dev, irq);
|
msi_free_irq(dev, irq);
|
||||||
irq = tail;
|
irq = tail;
|
||||||
}
|
}
|
||||||
msi_free_irq(dev, irq);
|
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;
|
dev->first_msi_irq = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user