I noticed the same behaviour, i.e. can not use both MSI and MSIX without rebooting.
I had sent a message to the maintainer of the MSI/MSIX source a few months ago and got a response that they were working on fixing it. Not sure what the progress is on it. Ayaz nvpublic -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ravinandan Arakali Sent: Thursday, May 04, 2006 4:16 PM To: linux-kernel@vger.kernel.org Cc: Ananda. Raju; netdev@vger.kernel.org; Leonid Grossman Subject: pci_enable_msix throws up error 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 netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html