On Wed, Feb 24, 2021 at 6:14 PM Noralf Trønnes <noralf@xxxxxxxxxxx> wrote: > > > > Den 19.02.2021 14.54, skrev Thomas Zimmermann: > > Hi > > > > Am 19.02.21 um 13:22 schrieb Noralf Trønnes: > >> dma-buf importing was reworked in commit 7d2cd72a9aa3 > >> ("drm/shmem-helpers: Simplify dma-buf importing"). Before that commit > >> drm_gem_shmem_prime_import_sg_table() did set ->pages_use_count=1 and > >> drm_gem_shmem_vunmap_locked() could call drm_gem_shmem_put_pages() > >> unconditionally. Now without the use count set, put pages is called also > >> on dma-bufs. Fix this by only putting pages if it's not imported. > >> > >> Fixes: 7d2cd72a9aa3 ("drm/shmem-helpers: Simplify dma-buf importing") > >> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> > >> Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> > >> Signed-off-by: Noralf Trønnes <noralf@xxxxxxxxxxx> > > > > Just when I saw the error. Nice. :) > > > > Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > > Tested-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > > > > Should I apply this to drm-misc-fixes? drm-misc-next-fixes because we're in the merge window. -Daniel > > Noralf. > > > For testing the GUD driver, you may also want to keep an eye at [1] > > > > Best regards > > Thomas > > > > [1] > > https://lore.kernel.org/dri-devel/02a45c11-fc73-1e5a-3839-30b080950af8@xxxxxxx/T/#t > > > > > >> --- > >> drivers/gpu/drm/drm_gem_shmem_helper.c | 7 ++++--- > >> 1 file changed, 4 insertions(+), 3 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c > >> b/drivers/gpu/drm/drm_gem_shmem_helper.c > >> index 9825c378dfa6..c8a6547a1757 100644 > >> --- a/drivers/gpu/drm/drm_gem_shmem_helper.c > >> +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c > >> @@ -357,13 +357,14 @@ static void drm_gem_shmem_vunmap_locked(struct > >> drm_gem_shmem_object *shmem, > >> if (--shmem->vmap_use_count > 0) > >> return; > >> - if (obj->import_attach) > >> + if (obj->import_attach) { > >> dma_buf_vunmap(obj->import_attach->dmabuf, map); > >> - else > >> + } else { > >> vunmap(shmem->vaddr); > >> + drm_gem_shmem_put_pages(shmem); > >> + } > >> shmem->vaddr = NULL; > >> - drm_gem_shmem_put_pages(shmem); > >> } > >> /* > >> > > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel