Skip to content

Commit 9c553c0

Browse files
committed
iommufd/iova_bitmap: Move initial pinning to iova_bitmap_for_each()
JIRA: https://issues.redhat.com/browse/RHEL-40162 Upstream Status: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git commit 781bc08 Author: Joao Martins <joao.m.martins@oracle.com> Date: Thu Jun 27 12:01:02 2024 +0100 iommufd/iova_bitmap: Move initial pinning to iova_bitmap_for_each() The pinned pages are only relevant when it starts iterating the bitmap so defer that into iova_bitmap_for_each(). Link: https://lore.kernel.org/r/20240627110105.62325-9-joao.m.martins@oracle.com Signed-off-by: Joao Martins <joao.m.martins@oracle.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Tested-by: Matt Ochs <mochs@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> (cherry picked from commit 781bc08) Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
1 parent be845f4 commit 9c553c0

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

drivers/iommu/iommufd/iova_bitmap.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,9 +269,6 @@ struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length,
269269
goto err;
270270
}
271271

272-
rc = iova_bitmap_get(bitmap);
273-
if (rc)
274-
goto err;
275272
return bitmap;
276273

277274
err:
@@ -425,6 +422,10 @@ int iova_bitmap_for_each(struct iova_bitmap *bitmap, void *opaque,
425422
{
426423
int ret = 0;
427424

425+
ret = iova_bitmap_get(bitmap);
426+
if (ret)
427+
return ret;
428+
428429
for (; !iova_bitmap_done(bitmap) && !ret;
429430
ret = iova_bitmap_advance(bitmap)) {
430431
ret = fn(bitmap, iova_bitmap_mapped_iova(bitmap),

0 commit comments

Comments
 (0)