Merge tag 'pci-v7.3-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci

Pull PCI fix from Bjorn Helgaas:

 - Allow driver to use AtomicOps if already enabled by hypervisor; fixes
   regression when Root Port is not visible in a guest (Nikola Prica)

* tag 'pci-v7.3-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
  PCI: Accept AtomicOps already enabled by the hypervisor
This commit is contained in:
Linus Torvalds committed 2026-10-02 12:45:08 -07:00
commit d2dbe503fd
1 file changed
+14 -1
+14 -1
View File
@@ -3769,8 +3769,21 @@ int pci_enable_atomic_ops_to_root(struct pci_dev *dev, u32 cap_mask)
}
root = pcie_find_root_port(dev);
if (!root)
if (!root) {
/*
* A hypervisor may expose a topology with the root port
* not visible to the guest. If the hypervisor has already
* set AtomicOp Requester Enable in the endpoint, we assume
* it has verified support in the root port, so it is safe
* for the driver to use AtomicOps.
*/
pcie_capability_read_dword(dev, PCI_EXP_DEVCTL2, &ctl2);
if (ctl2 & PCI_EXP_DEVCTL2_ATOMIC_REQ)
return 0;
return -EINVAL;
}
pcie_capability_read_dword(root, PCI_EXP_DEVCAP2, &cap);
if ((cap & cap_mask) != cap_mask)