Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

PCI_MSI_2 skips MSI-only endpoints in Linux vector uniqueness test

Closed
#528 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
72/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
c, linux

Research direction

Start with the Linux ACS implementation for the PCI_MSI_2 vector uniqueness test and trace its MSI/MSI-X capability check into the Linux PAL vector read path. Verify the test includes endpoints supporting either capability, handles both vector sources, and skips only devices supporting neither MSI nor MSI-X.

Written by the indexing model from the issue text.

Description

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.
Dominant language
C
Stars
23
Forks
39
Avg merge
6h 54m
Merged PRs (30d)
90

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ARM-software/sysarch-acs

All issues in ARM-software/sysarch-acs

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.