>-----Original Message----- >From: Auld, Matthew <[email protected]> >Sent: Friday, October 28, 2022 11:50 AM >To: [email protected] >Cc: Landwerlin, Lionel G <[email protected]>; Tvrtko Ursulin ><[email protected]>; Ville Syrjälä ><[email protected]>; >Ruhl, Michael J <[email protected]> >Subject: [PATCH v2 1/4] drm/i915/dmabuf: fix sg_table handling in >map_dma_buf > >We need to iterate over the original entries here for the sg_table, >pulling out the struct page for each one, to be remapped. However >currently this incorrectly iterates over the final dma mapped entries, >which is likely just one gigantic sg entry if the iommu is enabled, >leading to us only mapping the first struct page (and any physically >contiguous pages following it), even if there is potentially lots more >data to follow.
I like this patch set a lot better. 😊 Reviewed-by: Michael J. Ruhl <[email protected]> M >Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/7306 >Signed-off-by: Matthew Auld <[email protected]> >Cc: Lionel Landwerlin <[email protected]> >Cc: Tvrtko Ursulin <[email protected]> >Cc: Ville Syrjälä <[email protected]> >Cc: Michael J. Ruhl <[email protected]> >--- > drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > >diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c >b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c >index 07eee1c09aaf..05ebbdfd3b3b 100644 >--- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c >+++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c >@@ -40,13 +40,13 @@ static struct sg_table *i915_gem_map_dma_buf(struct >dma_buf_attachment *attachme > goto err; > } > >- ret = sg_alloc_table(st, obj->mm.pages->nents, GFP_KERNEL); >+ ret = sg_alloc_table(st, obj->mm.pages->orig_nents, GFP_KERNEL); > if (ret) > goto err_free; > > src = obj->mm.pages->sgl; > dst = st->sgl; >- for (i = 0; i < obj->mm.pages->nents; i++) { >+ for (i = 0; i < obj->mm.pages->orig_nents; i++) { > sg_set_page(dst, sg_page(src), src->length, 0); > dst = sg_next(dst); > src = sg_next(src); >-- >2.37.3
