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

From: Alex Williamson
Date: Wed Aug 03 2022 - 14:44:34 EST


Hi Linus,

There's a minor merge conflict between commit:

afe4e376ac5d ("vfio: Move IOMMU_CAP_CACHE_COHERENCY test to after we know we have a group")

added in v5.19-rc7 and commit:

3b498b665621 ("vfio: Use device_iommu_capable()")

as noted[1] by Stephen Rothwell, with a resolution provided in his next build.

There are also addition potential conflicts with kvm390[2] and s390[3]
trees, but I don't currently see pull requests on list for those yet.
Thanks!

Alex

[1] https://lore.kernel.org/all/20220706144652.1b254c76@xxxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/all/20220711171353.2b8eb09a@xxxxxxxxxxxxxxxx/
[3] https://lore.kernel.org/all/20220725163356.4f2b507e@xxxxxxxxxxxxxxxx/

The following changes since commit 03c765b0e3b4cb5063276b086c76f7a612856a9a:

Linux 5.19-rc4 (2022-06-26 14:22:10 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 099fd2c2020751737d9288f923d562e0e05977eb:

vfio/pci: fix the wrong word (2022-08-01 13:37:42 -0600)

----------------------------------------------------------------
VFIO updates for v6.0-rc1

- Cleanup use of extern in function prototypes (Alex Williamson)

- Simplify bus_type usage and convert to device IOMMU interfaces
(Robin Murphy)

- Check missed return value and fix comment typos (Bo Liu)

- Split migration ops from device ops and fix races in mlx5 migration
support (Yishai Hadas)

- Fix missed return value check in noiommu support (Liam Ni)

- Hardening to clear buffer pointer to avoid use-after-free (Schspa Shi)

- Remove requirement that only the same mm can unmap a previously
mapped range (Li Zhe)

- Adjust semaphore release vs device open counter (Yi Liu)

- Remove unused arg from SPAPR support code (Deming Wang)

- Rework vfio-ccw driver to better fit new mdev framework (Eric Farman,
Michael Kawano)

- Replace DMA unmap notifier with callbacks (Jason Gunthorpe)

- Clarify SPAPR support comment relative to iommu_ops (Alexey Kardashevskiy)

- Revise page pinning API towards compatibility with future iommufd support
(Nicolin Chen)

- Resolve issues in vfio-ccw, including use of DMA unmap callback
(Eric Farman)

----------------------------------------------------------------
Alex Williamson (3):
vfio: de-extern-ify function prototypes
Merge branches 'v5.20/vfio/migration-enhancements-v3', 'v5.20/vfio/simplify-bus_type-determination-v3', 'v5.20/vfio/check-vfio_register_iommu_driver-return-v2', 'v5.20/vfio/check-iommu_group_set_name_return-v1', 'v5.20/vfio/clear-caps-buf-v3', 'v5.20/vfio/remove-useless-judgement-v1' and 'v5.20/vfio/move-device_open-count-v2' into v5.20/vfio/next
Merge branches 'v5.20/vfio/spapr_tce-unused-arg-v1', 'v5.20/vfio/comment-typo-v1' and 'v5.20/vfio/vfio-ccw-rework-v4' into v5.20/vfio/next

Alexey Kardashevskiy (1):
vfio/spapr_tce: Fix the comment

Bo Liu (3):
vfio: check vfio_register_iommu_driver() return value
vfio/pci: fix the wrong word
vfio/pci: fix the wrong word

Deming Wang (1):
vfio/spapr_tce: Remove the unused parameters container

Eric Farman (13):
vfio/ccw: Fix FSM state if mdev probe fails
vfio/ccw: Do not change FSM state in subchannel event
vfio/ccw: Remove private->mdev
vfio/ccw: Pass enum to FSM event jumptable
vfio/ccw: Flatten MDEV device (un)register
vfio/ccw: Update trace data for not operational event
vfio/ccw: Create an OPEN FSM Event
vfio/ccw: Create a CLOSE FSM event
vfio/ccw: Refactor vfio_ccw_mdev_reset
vfio/ccw: Move FSM open/close to MDEV open/close
vfio/ccw: Add length to DMA_UNMAP checks
vfio/ccw: Remove FSM Close from remove handlers
vfio/ccw: Check return code from subchannel quiesce

Jason Gunthorpe (2):
vfio: Replace the DMA unmapping notifier with a callback
vfio: Replace the iommu notifier with a device list

Li Zhe (1):
vfio: remove useless judgement

Liam Ni (1):
vfio: check iommu_group_set_name() return value

Michael Kawano (1):
vfio/ccw: Remove UUID from s390 debug log

Nicolin Chen (10):
vfio: Make vfio_unpin_pages() return void
drm/i915/gvt: Replace roundup with DIV_ROUND_UP
vfio/ap: Pass in physical address of ind to ap_aqic()
vfio/ccw: Only pass in contiguous pages
vfio: Pass in starting IOVA to vfio_pin/unpin_pages API
vfio/ap: Change saved_pfn to saved_iova
vfio/ccw: Change pa_pfn list to pa_iova list
vfio: Rename user_iova of vfio_dma_rw()
vfio/ccw: Add kmap_local_page() for memcpy
vfio: Replace phys_pfn with pages for vfio_pin_pages()

Robin Murphy (2):
vfio/type1: Simplify bus_type determination
vfio: Use device_iommu_capable()

Schspa Shi (1):
vfio: Clear the caps->buf to NULL after free

Yi Liu (1):
vfio: Move "device->open_count--" out of group_rwsem in vfio_device_open()

Yishai Hadas (2):
vfio/mlx5: Protect mlx5vf_disable_fds() upon close device
vfio: Split migration ops from main device ops

Documentation/driver-api/vfio-mediated-device.rst | 16 +-
arch/s390/include/asm/ap.h | 6 +-
drivers/gpu/drm/i915/gvt/gvt.h | 1 -
drivers/gpu/drm/i915/gvt/kvmgt.c | 120 ++++---------
drivers/s390/cio/vfio_ccw_async.c | 1 -
drivers/s390/cio/vfio_ccw_cp.c | 205 +++++++++++++---------
drivers/s390/cio/vfio_ccw_cp.h | 12 +-
drivers/s390/cio/vfio_ccw_drv.c | 58 ++----
drivers/s390/cio/vfio_ccw_fsm.c | 99 +++++++++--
drivers/s390/cio/vfio_ccw_ops.c | 114 +++---------
drivers/s390/cio/vfio_ccw_private.h | 13 +-
drivers/s390/crypto/ap_queue.c | 2 +-
drivers/s390/crypto/vfio_ap_ops.c | 103 +++--------
drivers/s390/crypto/vfio_ap_private.h | 7 +-
drivers/vfio/fsl-mc/vfio_fsl_mc_private.h | 2 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 11 +-
drivers/vfio/pci/mlx5/cmd.c | 14 +-
drivers/vfio/pci/mlx5/cmd.h | 4 +-
drivers/vfio/pci/mlx5/main.c | 11 +-
drivers/vfio/pci/vfio_pci_config.c | 4 +-
drivers/vfio/pci/vfio_pci_core.c | 7 +
drivers/vfio/platform/vfio_platform_private.h | 21 ++-
drivers/vfio/vfio.c | 192 +++++++-------------
drivers/vfio/vfio.h | 17 +-
drivers/vfio/vfio_iommu_spapr_tce.c | 14 +-
drivers/vfio/vfio_iommu_type1.c | 197 ++++++++++++---------
include/linux/mdev.h | 5 -
include/linux/vfio.h | 106 ++++++-----
include/linux/vfio_pci_core.h | 65 ++++---
29 files changed, 659 insertions(+), 768 deletions(-)