[v6,0/8] Fix PF/VF dependency issue
mbox series

Message ID cover.1565997310.git.sathyanarayanan.kuppuswamy@linux.intel.com
Headers show
  • Fix PF/VF dependency issue
Related show


Kuppuswamy Sathyanarayanan Aug. 17, 2019, 12:10 a.m. UTC
From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

Current implementation of ATS, PASID, PRI does not handle VF dependencies
correctly. Following patches addresses this issue.

Changes since v5:
 * Created new patches for PRI/PASID capability caching.
 * Removed individual locks (pri_lock, pasid_lock) and added common
   resource lock to synchronize PRI/PASID updates between PF/VF.
 * Addressed comments from Bjorn Helgaas.

Changes since v4:
 * Defined empty functions for pci_pri_init() and pci_pasid_init() for cases
   where CONFIG_PCI_PRI and CONFIG_PCI_PASID are not enabled.

Changes since v3:
 * Fixed critical path (lock context) in pci_restore_*_state functions.

Changes since v2:
 * Added locking mechanism to synchronize accessing PF registers in VF.
 * Removed spec compliance checks in patches.
 * Addressed comments from Bjorn Helgaas.

Changes since v1:
 * Added more details about the patches in commit log.
 * Removed bulk spec check patch.
 * Addressed comments from Bjorn Helgaas.

Kuppuswamy Sathyanarayanan (8):
  PCI/ATS: Fix pci_prg_resp_pasid_required() dependency issues
  PCI/ATS: Cache PRI capability check result
  PCI/ATS: Cache PASID capability check result
  PCI/IOV: Add pci_physfn_reslock/unlock() interfaces
  PCI/ATS: Add PRI support for PCIe VF devices
  PCI/ATS: Add PASID support for PCIe VF devices
  PCI/ATS: Disable PF/VF ATS service independently
  PCI: Skip Enhanced Allocation (EA) initialization for VF device

 drivers/pci/ats.c       | 276 +++++++++++++++++++++++++++++-----------
 drivers/pci/iov.c       |   1 +
 drivers/pci/pci.c       |   7 +
 drivers/pci/pci.h       |  40 ++++++
 include/linux/pci-ats.h |  12 +-
 include/linux/pci.h     |   5 +-
 6 files changed, 260 insertions(+), 81 deletions(-)