Commit fc996db9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'vfio-v5.10-rc1' of git://github.com/awilliam/linux-vfio

Pull VFIO updates from Alex Williamson:

 - New fsl-mc vfio bus driver supporting userspace drivers of objects
   within NXP's DPAA2 architecture (Diana Craciun)

 - Support for exposing zPCI information on s390 (Matthew Rosato)

 - Fixes for "detached" VFs on s390 (Matthew Rosato)

 - Fixes for pin-pages and dma-rw accesses (Yan Zhao)

 - Cleanups and optimize vconfig regen (Zenghui Yu)

 - Fix duplicate irq-bypass token registration (Alex Williamson)

* tag 'vfio-v5.10-rc1' of git://github.com/awilliam/linux-vfio: (30 commits)
  vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
  vfio/pci: Clear token on bypass registration failure
  vfio/fsl-mc: fix the return of the uninitialized variable ret
  vfio/fsl-mc: Fix the dead code in vfio_fsl_mc_set_irq_trigger
  vfio/fsl-mc: Fixed vfio-fsl-mc driver compilation on 32 bit
  MAINTAINERS: Add entry for s390 vfio-pci
  vfio-pci/zdev: Add zPCI capabilities to VFIO_DEVICE_GET_INFO
  vfio/fsl-mc: Add support for device reset
  vfio/fsl-mc: Add read/write support for fsl-mc devices
  vfio/fsl-mc: trigger an interrupt via eventfd
  vfio/fsl-mc: Add irq infrastructure for fsl-mc devices
  vfio/fsl-mc: Added lock support in preparation for interrupt handling
  vfio/fsl-mc: Allow userspace to MMAP fsl-mc device MMIO regions
  vfio/fsl-mc: Implement VFIO_DEVICE_GET_REGION_INFO ioctl call
  vfio/fsl-mc: Implement VFIO_DEVICE_GET_INFO ioctl
  vfio/fsl-mc: Scan DPRC objects on vfio-fsl-mc driver bind
  vfio: Introduce capability definitions for VFIO_DEVICE_GET_INFO
  s390/pci: track whether util_str is valid in the zpci_dev
  s390/pci: stash version in the zpci_dev
  vfio/fsl-mc: Add VFIO framework skeleton for fsl-mc devices
  ...
parents 60573c29 2e6cfd49
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -15287,6 +15287,14 @@ F: Documentation/s390/vfio-ccw.rst
F:	drivers/s390/cio/vfio_ccw*
F:	include/uapi/linux/vfio_ccw.h
S390 VFIO-PCI DRIVER
M:	Matthew Rosato <mjrosato@linux.ibm.com>
L:	linux-s390@vger.kernel.org
L:	kvm@vger.kernel.org
S:	Supported
F:	drivers/vfio/pci/vfio_pci_zdev.c
F:	include/uapi/linux/vfio_zdev.h
S390 ZCRYPT DRIVER
M:	Harald Freudenberger <freude@linux.ibm.com>
L:	linux-s390@vger.kernel.org
@@ -18385,6 +18393,12 @@ F: drivers/vfio/
F:	include/linux/vfio.h
F:	include/uapi/linux/vfio.h
VFIO FSL-MC DRIVER
M:	Diana Craciun <diana.craciun@oss.nxp.com>
L:	kvm@vger.kernel.org
S:	Maintained
F:	drivers/vfio/fsl-mc/
VFIO MEDIATED DEVICE DRIVERS
M:	Kirti Wankhede <kwankhede@nvidia.com>
L:	kvm@vger.kernel.org
+3 −1
Original line number Diff line number Diff line
@@ -132,7 +132,8 @@ struct zpci_dev {
	u8		rid_available	: 1;
	u8		has_hp_slot	: 1;
	u8		is_physfn	: 1;
	u8		reserved	: 5;
	u8		util_str_avail	: 1;
	u8		reserved	: 4;
	unsigned int	devfn;		/* DEVFN part of the RID*/

	struct mutex lock;
@@ -179,6 +180,7 @@ struct zpci_dev {
	atomic64_t mapped_pages;
	atomic64_t unmapped_pages;

	u8		version;
	enum pci_bus_speed max_bus_speed;

	struct dentry	*debugfs_dev;
+3 −2
Original line number Diff line number Diff line
@@ -135,9 +135,10 @@ void pcibios_bus_add_device(struct pci_dev *pdev)
	 * With pdev->no_vf_scan the common PCI probing code does not
	 * perform PF/VF linking.
	 */
	if (zdev->vfn)
	if (zdev->vfn) {
		zpci_iov_setup_virtfn(zdev->zbus, pdev, zdev->vfn);

		pdev->no_command_memory = 1;
	}
}

static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev)
+2 −0
Original line number Diff line number Diff line
@@ -102,6 +102,7 @@ static void clp_store_query_pci_fngrp(struct zpci_dev *zdev,
	zdev->msi_addr = response->msia;
	zdev->max_msi = response->noi;
	zdev->fmb_update = response->mui;
	zdev->version = response->version;

	switch (response->version) {
	case 1:
@@ -167,6 +168,7 @@ static int clp_store_query_pci_fn(struct zpci_dev *zdev,
	if (response->util_str_avail) {
		memcpy(zdev->util_str, response->util_str,
		       sizeof(zdev->util_str));
		zdev->util_str_avail = 1;
	}
	zdev->mio_capable = response->mio_addr_avail;
	for (i = 0; i < PCI_STD_NUM_BARS; i++) {
+1 −0
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ int pci_iov_add_virtfn(struct pci_dev *dev, int id)
	virtfn->device = iov->vf_device;
	virtfn->is_virtfn = 1;
	virtfn->physfn = pci_dev_get(dev);
	virtfn->no_command_memory = 1;

	if (id == 0)
		pci_read_vf_config_common(virtfn);
Loading