Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72b03fbb authored by Christian König's avatar Christian König Committed by Sasha Levin
Browse files

drm/radeon: wait for moving fence after pinning



commit 4b41726aae563273bb4b4a9462ba51ce4d372f78 upstream.

We actually need to wait for the moving fence after pinning
the BO to make sure that the pin is completed.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
References: https://lore.kernel.org/dri-devel/20210621151758.2347474-1-daniel.vetter@ffwll.ch/
CC: stable@kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20210622114506.106349-2-christian.koenig@amd.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4b4ce5cb
Loading
Loading
Loading
Loading
+13 −3
Original line number Original line Diff line number Diff line
@@ -92,9 +92,19 @@ int radeon_gem_prime_pin(struct drm_gem_object *obj)


	/* pin buffer into GTT */
	/* pin buffer into GTT */
	ret = radeon_bo_pin(bo, RADEON_GEM_DOMAIN_GTT, NULL);
	ret = radeon_bo_pin(bo, RADEON_GEM_DOMAIN_GTT, NULL);
	if (likely(ret == 0))
	if (unlikely(ret))
		bo->prime_shared_count++;
		goto error;

	if (bo->tbo.moving) {
		ret = dma_fence_wait(bo->tbo.moving, false);
		if (unlikely(ret)) {
			radeon_bo_unpin(bo);
			goto error;
		}
	}


	bo->prime_shared_count++;
error:
	radeon_bo_unreserve(bo);
	radeon_bo_unreserve(bo);
	return ret;
	return ret;
}
}