Messages in this thread | | | From | "Ravinandan Arakali" <> | Subject | pci_enable_msix throws up error | Date | Thu, 4 May 2006 16:16:13 -0700 |
| |
Hi, I am seeing the following problem with MSI/MSI-X.
Note: I am copying netdev since other network drivers use this feature and somebody on the list could throw light.
Our 10G network card(Xframe II) supports MSI and MSI-X. When I load/unload the driver with MSI support followed by an attempt to load with MSI-X, I get the following message from pci_enable_msix:
"Can't enable MSI-X. Device already has an MSI vector assigned"
I seem to be doing the correct things when unloading the MSI driver. Basically, I do free_irq() followed by pci_disable_msi(). Any idea what I am missing ?
Further analysis: Looking at the code, the following check(when it finds a match) in msi_lookup_vector(called by pci_enable_msix) seems to throw up this message: if (!msi_desc[vector] || msi_desc[vector]->dev != dev || msi_desc[vector]->msi_attrib.type != type || msi_desc[vector]->msi_attrib.default_vector != dev->irq)
pci_enable_msi, on successful completion will populate the fields in msi_desc. But neither pci_disable_msi nor free_irq seems to undo/unpopulate the msi_desc table. Could this be the cause for the problem ?
Thanks, Ravi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |