• Selvin Xavier's avatar
    PCI: Do not enable AtomicOps on VFs · 5ec0a6fc
    Selvin Xavier authored
    Host crashes when pci_enable_atomic_ops_to_root() is called for VFs with
    virtual buses. The virtual buses added to SR-IOV have bus->self set to NULL
    and host crashes due to this.
    
      PID: 4481   TASK: ffff89c6941b0000  CPU: 53  COMMAND: "bash"
      ...
       #3 [ffff9a9481713808] oops_end at ffffffffb9025cd6
       #4 [ffff9a9481713828] page_fault_oops at ffffffffb906e417
       #5 [ffff9a9481713888] exc_page_fault at ffffffffb9a0ad14
       #6 [ffff9a94817138b0] asm_exc_page_fault at ffffffffb9c00ace
          [exception RIP: pcie_capability_read_dword+28]
          RIP: ffffffffb952fd5c  RSP: ffff9a9481713960  RFLAGS: 00010246
          RAX: 0000000000000001  RBX: ffff89c6b1096000  RCX: 0000000000000000
          RDX: ffff9a9481713990  RSI: 0000000000000024  RDI: 0000000000000000
          RBP: 0000000000000080   R8: 0000000000000008   R9: ffff89c64341a2f8
          R10: 0000000000000002  R11: 0000000000000000  R12: ffff89c648bab000
          R13: 0000000000000000  R14: 0000000000000000  R15: ffff89c648bab0c8
          ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
       #7 [ffff9a9481713988] pci_enable_atomic_ops_to_root at ffffffffb95359a6
       #8 [ffff9a94817139c0] bnxt_qplib_determine_atomics at ffffffffc08c1a33 [bnxt_re]
       #9 [ffff9a94817139d0] bnxt_re_dev_init at ffffffffc08ba2d1 [bnxt_re]
    
    Per PCIe r5.0, sec 9.3.5.10, the AtomicOp Requester Enable bit in Device
    Control 2 is reserved for VFs.  The PF value applies to all associated VFs.
    
    Return -EINVAL if pci_enable_atomic_ops_to_root() is called for a VF.
    
    Link: https://lore.kernel.org/r/1631354585-16597-1-git-send-email-selvin.xavier@broadcom.com
    Fixes: 35f5ace5 ("RDMA/bnxt_re: Enable global atomic ops if platform supports")
    Fixes: 430a2368 ("PCI: Add pci_enable_atomic_ops_to_root()")
    Signed-off-by: default avatarSelvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarAndy Gospodarek <gospo@broadcom.com>
    5ec0a6fc
pci.c 179 KB