All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] PCI: AtomicOps: Fix pci_enable_atomic_ops_to_root()
@ 2025-11-10 13:25 Gerd Bayer
  2025-11-10 13:25 ` [PATCH 1/2] PCI: AtomicOps: Define valid root port capabilities Gerd Bayer
  2025-11-10 13:25 ` [PATCH 2/2] PCI: AtomicOps: Fix logic in enable function Gerd Bayer
  0 siblings, 2 replies; 4+ messages in thread
From: Gerd Bayer @ 2025-11-10 13:25 UTC (permalink / raw)
  To: Bjorn Helgaas, Jay Cornwall, Felix Kuehling
  Cc: Niklas Schnelle, Alexander Schmidt, linux-s390, linux-pci,
	linux-kernel, Gerd Bayer, Leon Romanovsky, stable

Hi Bjorn et al.

this series addresses a few issues that have come up with the helper
function that enables Atomic Op Requests to be initiated by PCI
enpoints:

A. Most in-tree users of this helper use it incorrectly [0].
B. On s390, Atomic Op Requests are enabled, although the helper
   cannot know whether the root port is really supporting them.
C. Loop control in the helper function does not guarantee that a root
   port's capabilities are ever checked against those requested by the
   caller.

Address these issue with the following patches:
Patch 1: Make it harder to mis-use the enablement function,
Patch 2: Addresses issues B. and C.

I did test that issue B is fixed with these patches. Also, I verified
that Atomic Ops enablement on a Mellanox/Nvidia ConnectX-6 adapter
plugged straight into the root port of a x86 system still gets AtomicOp
Requests enabled. However, I did not test this with any PCIe switches
between root port and endpoint.

Ideally, both patches would be incorporated immediately, so we could
start correcting the mis-uses in the device drivers. I don't know of any
complaints when using Atomic Ops on devices where the driver is
mis-using the helper. Patch 2 however, is fixing an obseved issue.

[0]: https://lore.kernel.org/all/fbe34de16f5c0bf25a16f9819a57fdd81e5bb08c.camel@linux.ibm.com/
[1]: https://lore.kernel.org/all/20251105-mlxatomics-v1-0-10c71649e08d@linux.ibm.com/

Signed-off-by: Gerd Bayer <gbayer@linux.ibm.com>
---
Gerd Bayer (2):
      PCI: AtomicOps: Define valid root port capabilities
      PCI: AtomicOps: Fix logic in enable function

 drivers/pci/pci.c             | 43 +++++++++++++++++++++----------------------
 include/uapi/linux/pci_regs.h |  8 ++++++++
 2 files changed, 29 insertions(+), 22 deletions(-)
---
base-commit: e9a6fb0bcdd7609be6969112f3fbfcce3b1d4a7c
change-id: 20251106-fix_pciatops-7e8608eccb03

Best regards,
-- 
Gerd Bayer <gbayer@linux.ibm.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-11-10 14:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-10 13:25 [PATCH 0/2] PCI: AtomicOps: Fix pci_enable_atomic_ops_to_root() Gerd Bayer
2025-11-10 13:25 ` [PATCH 1/2] PCI: AtomicOps: Define valid root port capabilities Gerd Bayer
2025-11-10 14:02   ` Leon Romanovsky
2025-11-10 13:25 ` [PATCH 2/2] PCI: AtomicOps: Fix logic in enable function Gerd Bayer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.