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
