Re: MSI entry unlinked before arch_teardown_msi_irq().

From: David Miller
Date: Sun Feb 25 2007 - 18:46:59 EST


From: ebiederm@xxxxxxxxxxxx (Eric W. Biederman)
Date: Sun, 25 Feb 2007 02:08:07 -0700

> If that isn't the issue holler and I will look into it a little more.

Talking in code is always more effective :-)

This patch fixes the OOPS I was talking about:

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 68555c1..2f2d92e 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -678,12 +678,14 @@ static int msi_free_irq(struct pci_dev* dev, int irq)
}
type = entry->msi_attrib.type;
entry_nr = entry->msi_attrib.entry_nr;
+
+ arch_teardown_msi_irq(irq);
+
head = entry->link.head;
base = entry->mask_base;
get_irq_msi(entry->link.head)->link.tail = entry->link.tail;
get_irq_msi(entry->link.tail)->link.head = entry->link.head;

- arch_teardown_msi_irq(irq);
kmem_cache_free(msi_cachep, entry);

if (type == PCI_CAP_ID_MSIX) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/