On Tue, 2022-07-05 at 23:27 -0700, Nicolin Chen wrote: > This is a preparatory series for IOMMUFD v2 patches. It prepares for > replacing vfio_iommu_type1 implementations of vfio_pin/unpin_pages() > with IOMMUFD version. > > There's a gap between these two versions: the vfio_iommu_type1 > version > inputs a non-contiguous PFN list and outputs another PFN list for the > pinned physical page list, while the IOMMUFD version only supports a > contiguous address input by accepting the starting IO virtual address > of a set of pages to pin and by outputting to a physical page list. > > The nature of existing callers mostly aligns with the IOMMUFD > version, > except s390's vfio_ccw_cp code where some additional change is needed > along with this series. Overall, updating to "iova" and "phys_page" > does improve the caller side to some extent. > > Also fix a misuse of physical address and virtual address in the > s390's > crypto code. And update the input naming at the adjacent > vfio_dma_rw(). > > This is on github: > https://github.com/nicolinc/iommufd/commits/vfio_pin_pages > > Request for testing: I only did build for s390 and i915 code, so it'd > be nice to have people who have environment to run sanity > accordingly. Tested-by: Eric Farman <farman@xxxxxxxxxxxxx> # s390 > > Thanks! > > Changelog > v2: > * Added a patch to make vfio_unpin_pages return void > * Added two patches to remove PFN list from two s390 callers > * Renamed "phys_page" parameter to "pages" for vfio_pin_pages > * Updated commit log of kmap_local_page() patch > * Added Harald's "Reviewed-by" to pa_ind patch > * Rebased on top of Alex's extern removal path > v1: > https://lore.kernel.org/kvm/20220616235212.15185-1-nicolinc@xxxxxxxxxx/ > > Nicolin Chen (9): > vfio: Make vfio_unpin_pages() return void > 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: Remove redundant pfn > 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() > > .../driver-api/vfio-mediated-device.rst | 6 +- > arch/s390/include/asm/ap.h | 6 +- > drivers/gpu/drm/i915/gvt/kvmgt.c | 46 ++--- > drivers/s390/cio/vfio_ccw_cp.c | 195 +++++++++++----- > -- > drivers/s390/crypto/ap_queue.c | 2 +- > drivers/s390/crypto/vfio_ap_ops.c | 54 +++-- > drivers/s390/crypto/vfio_ap_private.h | 4 +- > drivers/vfio/vfio.c | 55 +++-- > drivers/vfio/vfio.h | 8 +- > drivers/vfio/vfio_iommu_type1.c | 46 +++-- > include/linux/vfio.h | 9 +- > 11 files changed, 218 insertions(+), 213 deletions(-) >