PCI/IOV: Add pci_sriov_configure_simple()
authorAlexander Duyck <alexander.h.duyck@intel.com>
Sat, 21 Apr 2018 20:23:09 +0000 (15:23 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 24 Apr 2018 21:46:56 +0000 (16:46 -0500)
commit8effc395c2097e258fcedfc02ed4a66d45fb4238
treec0b573e7630e44c68c2bbe9f816135bf52363459
parent60cc43fc888428bb2f18f08997432d426a243338
PCI/IOV: Add pci_sriov_configure_simple()

SR-IOV (Single Root I/O Virtualization) is an optional PCIe capability (see
PCIe r4.0, sec 9).  A PCIe Function with the SR-IOV capability is referred
to as a PF (Physical Function).  If SR-IOV is enabled on the PF, several
VFs (Virtual Functions) may be created.  The VFs can be individually
assigned to virtual machines, which allows them to share a single hardware
device while being isolated from each other.

Some SR-IOV devices have resources such as queues and interrupts that must
be set up in the PF before enabling the VFs, so they require a PF driver to
do that.

Other SR-IOV devices don't require any PF setup before enabling VFs.  Add a
pci_sriov_configure_simple() interface so PF drivers for such devices can
use it without repeating the VF-enabling code.

Tested-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
[bhelgaas: changelog, comment]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Greg Rose <gvrose8192@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>:wq
drivers/pci/iov.c
include/linux/pci.h