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
