I'm trying to get MSI-X going with my new h/w and I noticed that the
call to ddi_intr_get_supported_types() was not returning the bit for
MSI-X despite the MSI-X capability being present in my config. space.
I dug around the DDI code and found this code:

http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/i86pc/io/pci/pci_common.c#254

The npe driver calls straight into this function and, as you can see,
the if statement checks for the MSI-X capability and then ORs the
DDI_INTR_TYPE_MSIX bit into the types as you'd expect. However the
code at line 269 then ANDs the bit out again! What's the point in
this? Why even check for the capability if the code then immediately
squashed the bit anyway?
When are are going to get 'official' MSI-X support for x86? I'm fairly
surprised it's not already supported. Seems like Solaris is
significantly behind the game.

 Paul

--
Paul Durrant
http://www.linkedin.com/in/pdurrant
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to