vfio/ccw: Only pass in contiguous pages
authorNicolin Chen <nicolinc@nvidia.com>
Sat, 23 Jul 2022 02:02:50 +0000 (19:02 -0700)
committerAlex Williamson <alex.williamson@redhat.com>
Sat, 23 Jul 2022 13:29:11 +0000 (07:29 -0600)
commitcfedb3d5e602dbf12e254cf88aceac348342f9b2
tree22f39127b32411c5a2ae13a83596fdd3cdfff358
parent10e19d492a326afe7f016a8735ccdfd7c65fc979
vfio/ccw: Only pass in contiguous pages

This driver is the only caller of vfio_pin/unpin_pages that might pass
in a non-contiguous PFN list, but in many cases it has a contiguous PFN
list to process. So letting VFIO API handle a non-contiguous PFN list
is actually counterproductive.

Add a pair of simple loops to pass in contiguous PFNs only, to have an
efficient implementation in VFIO.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Tested-by: Eric Farman <farman@linux.ibm.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Link: https://lore.kernel.org/r/20220723020256.30081-5-nicolinc@nvidia.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/s390/cio/vfio_ccw_cp.c