PCI: Do not enable AtomicOps on VFs
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: 35f5ace5dea4 ("RDMA/bnxt_re: Enable global atomic ops if platform supports")
Fixes: 430a23689dea ("PCI: Add pci_enable_atomic_ops_to_root()")
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Andy Gospodarek <gospo@broadcom.com>