[GIT PULL] VFIO updates for v6.3-rc1

From: Alex Williamson
Date: Fri Feb 24 2023 - 15:13:51 EST


Hi Linus,

The following changes since commit 2241ab53cbb5cdb08a6b2d4688feb13971058f65:

Linux 6.2-rc5 (2023-01-21 16:27:01 -0800)

are available in the Git repository at:

https://github.com/awilliam/linux-vfio.git tags/vfio-v6.3-rc1

for you to fetch changes up to d649c34cb916b015fdcb487e51409fcc5caeca8d:

vfio: Fix NULL pointer dereference caused by uninitialized group->iommufd (2023-02-22 10:56:37 -0700)

----------------------------------------------------------------
VFIO updates for v6.3-rc1

- Remove redundant resource check in vfio-platform. (Angus Chen)

- Use GFP_KERNEL_ACCOUNT for persistent userspace allocations, allowing
removal of arbitrary kernel limits in favor of cgroup control.
(Yishai Hadas)

- mdev tidy-ups, including removing the module-only build restriction
for sample drivers, Kconfig changes to select mdev support,
documentation movement to keep sample driver usage instructions with
sample drivers rather than with API docs, remove references to
out-of-tree drivers in docs. (Christoph Hellwig)

- Fix collateral breakages from mdev Kconfig changes. (Arnd Bergmann)

- Make mlx5 migration support match device support, improve source
and target flows to improve pre-copy support and reduce downtime.
(Yishai Hadas)

- Convert additional mdev sysfs case to use sysfs_emit(). (Bo Liu)

- Resolve copy-paste error in mdev mbochs sample driver Kconfig.
(Ye Xingchen)

- Avoid propagating missing reset error in vfio-platform if reset
requirement is relaxed by module option. (Tomasz Duszynski)

- Range size fixes in mlx5 variant driver for missed last byte and
stricter range calculation. (Yishai Hadas)

- Fixes to suspended vaddr support and locked_vm accounting, excluding
mdev configurations from the former due to potential to indefinitely
block kernel threads, fix underflow and restore locked_vm on new mm.
(Steve Sistare)

- Update outdated vfio documentation due to new IOMMUFD interfaces in
recent kernels. (Yi Liu)

- Resolve deadlock between group_lock and kvm_lock, finally.
(Matthew Rosato)

- Fix NULL pointer in group initialization error path with IOMMUFD.
(Yan Zhao)

----------------------------------------------------------------
Angus Chen (1):
vfio: platform: No need to check res again

Arnd Bergmann (1):
vfio-mdev: add back CONFIG_VFIO dependency

Bo Liu (1):
vfio/mdev: Use sysfs_emit() to instead of sprintf()

Christoph Hellwig (4):
vfio-mdev: allow building the samples into the kernel
vfio-mdev: turn VFIO_MDEV into a selectable symbol
vfio-mdev: move the mtty usage documentation
vfio-mdev: remove an non-existing driver from vfio-mediated-device

Cornelia Huck (1):
MAINTAINERS: step down as vfio reviewer

Jason Gunthorpe (1):
vfio: Use GFP_KERNEL_ACCOUNT for userspace persistent allocations

Matthew Rosato (2):
vfio: fix deadlock between group lock and kvm lock
vfio: no need to pass kvm pointer during device open

Shay Drory (1):
vfio/mlx5: Check whether VF is migratable

Steve Sistare (7):
vfio/type1: exclude mdevs from VFIO_UPDATE_VADDR
vfio/type1: prevent underflow of locked_vm via exec()
vfio/type1: track locked_vm per dma
vfio/type1: restore locked_vm
vfio/type1: revert "block on invalid vaddr"
vfio/type1: revert "implement notify callback"
vfio: revert "iommu driver notify callback"

Tomasz Duszynski (1):
vfio: platform: ignore missing reset if disabled at module init

Yan Zhao (1):
vfio: Fix NULL pointer dereference caused by uninitialized group->iommufd

Yi Liu (2):
vfio: Update the kdoc for vfio_device_ops
docs: vfio: Update vfio.rst per latest interfaces

Yishai Hadas (8):
vfio/mlx5: Fix UBSAN note
vfio/mlx5: Allow loading of larger images than 512 MB
vfio/hisi: Use GFP_KERNEL_ACCOUNT for userspace persistent allocations
vfio/fsl-mc: Use GFP_KERNEL_ACCOUNT for userspace persistent allocations
vfio/platform: Use GFP_KERNEL_ACCOUNT for userspace persistent allocations
vfio/mlx5: Improve the source side flow upon pre_copy
vfio/mlx5: Improve the target side flow to reduce downtime
vfio/mlx5: Fix range size calculation upon tracker creation

ye xingchen (1):
samples: fix the prompt about SAMPLE_VFIO_MDEV_MBOCHS

Documentation/driver-api/vfio-mediated-device.rst | 108 +--------
Documentation/driver-api/vfio.rst | 82 +++++--
Documentation/s390/vfio-ap.rst | 1 -
MAINTAINERS | 1 -
arch/s390/Kconfig | 8 +-
arch/s390/configs/debug_defconfig | 1 -
arch/s390/configs/defconfig | 1 -
drivers/gpu/drm/i915/Kconfig | 3 +-
drivers/vfio/container.c | 7 +-
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 2 +-
drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 4 +-
drivers/vfio/group.c | 46 +++-
drivers/vfio/mdev/Kconfig | 8 +-
drivers/vfio/mdev/mdev_sysfs.c | 2 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 4 +-
drivers/vfio/pci/mlx5/cmd.c | 79 +++++--
drivers/vfio/pci/mlx5/cmd.h | 28 ++-
drivers/vfio/pci/mlx5/main.c | 261 ++++++++++++++++++----
drivers/vfio/pci/vfio_pci_config.c | 6 +-
drivers/vfio/pci/vfio_pci_core.c | 7 +-
drivers/vfio/pci/vfio_pci_igd.c | 2 +-
drivers/vfio/pci/vfio_pci_intrs.c | 10 +-
drivers/vfio/pci/vfio_pci_rdwr.c | 2 +-
drivers/vfio/platform/vfio_platform_common.c | 12 +-
drivers/vfio/platform/vfio_platform_irq.c | 8 +-
drivers/vfio/vfio.h | 25 ++-
drivers/vfio/vfio_iommu_type1.c | 248 +++++++++-----------
drivers/vfio/vfio_main.c | 70 +++++-
drivers/vfio/virqfd.c | 2 +-
include/linux/vfio.h | 6 +-
include/uapi/linux/vfio.h | 15 +-
samples/Kconfig | 19 +-
samples/vfio-mdev/README.rst | 100 +++++++++
33 files changed, 756 insertions(+), 422 deletions(-)
create mode 100644 samples/vfio-mdev/README.rst