Public bug reported:

[Impact]

While a PCIe Link is contained by Downstream Port Containment (DPC), the
MSI-X Table in device MMIO space and the MSI Mask register in Configuration
Space are unreachable.

PCI IRQ-vector teardown can attempt these accesses while the Link is
contained. A Downstream Port completes them with Unsupported Request. If
the upstream Root Port implements DPC Root Port Extensions, that completion
can be reported as an RP PIO error and trigger a second containment event
at the Root Port.

Consequently, containment of one Downstream Port can cause a wider outage
affecting unrelated PCIe devices below the Root Port.


[Fix]

Backport the public v4 patch:

PCI/MSI: Skip MSI/MSI-X programming while the channel is offline

The patch skips MSI and MSI-X hardware programming when
pci_channel_offline() is true. The cached MSI/MSI-X state is still updated
so the intended state can be restored after Link recovery.

It also returns -EIO from pci_msix_write_tph_tag() when the channel is
offline, avoiding an MSI-X Table write and its subsequent flush read.

The patch is currently under upstream review. V4 was posted on September 9,
2026, and passed Sashiko:

https://lore.kernel.org/all/[email protected]/

The backport had a minor context conflict in pci_msix_write_tph_tag().
The target branch's existing FIELD_PREP()-based implementation was retained
instead of importing an unrelated upstream FIELD_MODIFY() conversion.

[Test]

The backport was tested against the Ubuntu 26.04 linux-nvidia-bos kernel on
an NVIDIA Vera system.

- scripts/checkpatch.pl --strict --git HEAD:
  0 errors, 0 warnings, 0 checks
- Full ARM64 64K kernel build using make -j352:
  completed successfully with exit status 0
- Built kernel release:
  7.0.14-skip-mmio-v4+
- CONFIG_ARM64_64K_PAGES=y
- CONFIG_PAGE_SIZE_64KB=y

An earlier revision of the fix received successful functional validation.
The v4 backport has received source and build validation; runtime validation
of the exact v4 backport is still pending.

Runtime validation should trigger DPC recovery and verify that:

- The affected endpoint recovers successfully.
- MSI/MSI-X interrupts function after recovery.
- Unrelated devices below the upstream Root Port remain operational.
- No additional Root Port containment event is triggered.

NVBug: https://nvbugspro.nvidia.com/bug/6425529
Upstream-tracking NVBug: 6744988

** Affects: linux-nvidia-bos (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2167038

Title:
  PCI/MSI: Skip MSI/MSI-X programming while the channel is offline

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-bos/+bug/2167038/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to