[PATCH v6 0/2] PCI: AtomicOps: Fix pci_enable_atomic_ops_to_root()
From: Gerd Bayer <gbayer@linux.ibm.com>
Date: 2026-03-25 15:16:34
Also in:
linux-pci, linux-rdma, linux-s390, lkml, stable
Hi Bjorn et al. On s390, AtomicOp Requests are enabled on a PCI function that supports them, despite the helper being ignorant about the root port's capability to supporting their completion. Patch 1: Fix the logic in pci_enable_atomic_ops_to_root() Patch 2: Update references to PCIe spec in that function. I did test that the issue is fixed with these patches. Also, I verified that on a Mellanox/Nvidia ConnectX-6 adapter plugged straight into the root port of a x86 system still gets AtomicOp Requests enabled. Due to lacking the required hardware, I did not test this with any PCIe switches between root port and endpoint. So test exposure to other environments is highly appreciated. One particularly rare setup is a RCiEP that might act as a AtomicOps Requestor - but was subject to a regression in v4 as reported by Sashiko. v5 of this series tries to make no functional changes for that class of devices either. Signed-off-by: Gerd Bayer <gbayer@linux.ibm.com> --- Changes in v6: - Incorporate Ilpo's editorial comments. - Correct logic in pci_is_atomicops_capable_rp() (annotated by Sashiko) - Link to v5: https://lore.kernel.org/r/20260323-fix_pciatops-v5-0-fada7233aea8@linux.ibm.com (local) Changes in v5: - Introduce new pcibios_connects_to_atomicops_capable_rc() so arch's can declare AtomicOps support outside of PCIe config space. Defaults to "true" - except s390. - rebase to 7.0-rc5 - Link to v4: https://lore.kernel.org/r/20260313-fix_pciatops-v4-0-93bc70a63935@linux.ibm.com (local) Changes in v4: - drop patch 1 - it will become the base of a new series - previous patch 2, now 1: reword commit message - add a new patch to update references to PCI spec within pci_enable_atomic_ops_to_root() - rebase to latest master - Link to v3: https://lore.kernel.org/r/20260306-fix_pciatops-v3-0-99d12bcafb19@linux.ibm.com (local) Changes in v3: - rebase to 7.0-rc2 - gentle ping - add netdev and rdma lists for awareness - Link to v2: https://lore.kernel.org/r/20251216-fix_pciatops-v2-0-d013e9b7e2ee@linux.ibm.com (local) Changes in v2: - rebase to 6.19-rc1 - otherwise unchanged to v1 - Link to v1: https://lore.kernel.org/r/20251110-fix_pciatops-v1-0-edc58a57b62e@linux.ibm.com (local) --- Gerd Bayer (2): PCI: AtomicOps: Do not enable without support in root complex PCI: AtomicOps: Update references to PCIe spec arch/s390/pci/pci.c | 5 +++++ drivers/pci/pci.c | 54 +++++++++++++++++++++++++++++++++-------------------- include/linux/pci.h | 1 + 3 files changed, 40 insertions(+), 20 deletions(-) --- base-commit: c369299895a591d96745d6492d4888259b004a9e change-id: 20251106-fix_pciatops-7e8608eccb03 Best regards, -- Gerd Bayer [off-list ref]