[GIT PULL] VFIO updates for v4.6-rc1

From: Alex Williamson
Date: Wed Mar 16 2016 - 14:36:49 EST

Hi Linus,

The following changes since commit 81f70ba233d5f660e1ea5fe23260ee323af5d53a:

Linux 4.5-rc5 (2016-02-20 13:39:35 -0800)

are available in the git repository at:

git://github.com/awilliam/linux-vfio.git tags/vfio-v4.6-rc1

for you to fetch changes up to c4aec3101319f84363a57e09086c2aff6c60a3c3:

vfio/pci: return -EFAULT if copy_to_user fails (2016-02-25 21:48:42 -0700)

VFIO updates for v4.6-rc1

Various enablers for assignment of Intel graphics devices and future
support of vGPU devices (Alex Williamson). This includes

- Handling the vfio type1 interface as an API rather than a specific
implementation, allowing multiple type1 providers.

- Capability chains, similar to PCI device capabilities, that allow
extending ioctls. Extensions here include device specific regions
and sparse mmap descriptions. The former is used to expose non-PCI
regions for IGD, including the OpRegion (particularly the Video
BIOS Table), and read only PCI config access to the host and LPC
bridge as drivers often depend on identifying those devices.
Sparse mmaps here are used to describe the MSIx vector table,
which vfio has always protected from mmap, but never had an API to
explicitly define that protection. In future vGPU support this is
expected to allow the description of PCI BARs that may mix direct
access and emulated access within a single region.

- The ability to expose the shadow ROM as an option ROM as IGD use
cases may rely on the ROM even though the physical device does not
make use of a PCI option ROM BAR.

Alex Williamson (12):
vfio/pci: Fix unsigned comparison overflow
vfio: If an IOMMU backend fails, keep looking
vfio: Define capability chains
vfio: Add capability chain helpers
vfio: Define sparse mmap capability for regions
vfio/pci: Include sparse mmap capability for MSI-X table regions
vfio: Define device specific region type capability
vfio/pci: Add infrastructure for additional device specific regions
vfio/pci: Enable virtual register in PCI config space
vfio/pci: Intel IGD OpRegion support
vfio/pci: Intel IGD host and LCP bridge config space access
vfio/pci: Expose shadow ROM as PCI option ROM

Dan Carpenter (1):
vfio/pci: return -EFAULT if copy_to_user fails

drivers/vfio/pci/Kconfig | 4 +
drivers/vfio/pci/Makefile | 1 +
drivers/vfio/pci/vfio_pci.c | 175 +++++++++++++++++++++-
drivers/vfio/pci/vfio_pci_config.c | 45 +++++-
drivers/vfio/pci/vfio_pci_igd.c | 280 ++++++++++++++++++++++++++++++++++++
drivers/vfio/pci/vfio_pci_intrs.c | 17 +--
drivers/vfio/pci/vfio_pci_private.h | 39 +++++
drivers/vfio/pci/vfio_pci_rdwr.c | 9 +-
drivers/vfio/vfio.c | 70 +++++++--
include/linux/vfio.h | 11 ++
include/uapi/linux/vfio.h | 92 +++++++++++-
11 files changed, 706 insertions(+), 37 deletions(-)
create mode 100644 drivers/vfio/pci/vfio_pci_igd.c