public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* pci_enable_msix throws up error
@ 2006-05-04 23:16 Ravinandan Arakali
  2006-05-15 17:44 ` MSI-X support on AMD 8132 platforms ? Ravinandan Arakali
  0 siblings, 1 reply; 5+ messages in thread
From: Ravinandan Arakali @ 2006-05-04 23:16 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ananda. Raju, netdev, Leonid Grossman

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



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-05-16 18:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-04 23:16 pci_enable_msix throws up error Ravinandan Arakali
2006-05-15 17:44 ` MSI-X support on AMD 8132 platforms ? Ravinandan Arakali
2006-05-15 19:01   ` Andi Kleen
2006-05-16 15:01     ` Petr Vandrovec
2006-05-16 18:44       ` Ravinandan Arakali

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox