Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ede9c1f authored by Michael Ellerman's avatar Michael Ellerman Committed by Greg Kroah-Hartman
Browse files

MSI: Consolidate BUG_ON()s.



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: default avatarMichael Ellerman <michael@ellerman.id.au>
Acked-by: default avatarEric W. Biederman <ebiederm@xmission.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent fc4afc7b
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -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);

@@ -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;
@@ -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;
@@ -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);