The PCI_MSI_2 rule applies to MSI(-X), so endpoints that support MSI only should be valid targets for the test.
In the current Linux ACS implementation, the vector uniqueness test appears to skip MSI-only endpoints because the capability check requires both MSI-X and MSI capability discovery to pass before the device is considered.
Current behavior:
- Endpoint supports MSI only.
- Endpoint does not support MSI-X.
- PCI_MSI_2 skips the device.
- Test may report no MSI vectors found / skip, even though an MSI-capable endpoint is present.
Expected behavior:
- PCI_MSI_2 should accept endpoints that support either MSI or MSI-X.
- MSI-only endpoints should be included in the vector uniqueness validation.
- The test should skip only devices that support neither MSI nor MSI-X.
Suggested fix:
- Update the capability check so the device is skipped only when both MSI-X and MSI capabilities are absent.
- Ensure the Linux PAL vector read path continues to handle both MSI-X table entries and MSI capability registers.
Impact:
- MSI-only platforms cannot currently obtain automated ACS coverage for PCI_MSI_2.
- Such platforms may need manual validation until this is fixed.
The PCI_MSI_2 rule applies to MSI(-X), so endpoints that support MSI only should be valid targets for the test.
In the current Linux ACS implementation, the vector uniqueness test appears to skip MSI-only endpoints because the capability check requires both MSI-X and MSI capability discovery to pass before the device is considered.
Current behavior:
Expected behavior:
Suggested fix:
Impact: