From: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com>

Attempting to migrate the bo will break the sharing of the buffer.

Signed-off-by: Christopher James Halse Rogers 
<christopher.halse.rog...@canonical.com>
CC: amd-...@lists.freedesktop.org
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
index 3826d5aea0a6..3c84ec5c6ac8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
@@ -74,6 +74,17 @@ amdgpu_gem_prime_import_sg_table(struct drm_device *dev,
        if (ret)
                return ERR_PTR(ret);
 
+       /* Imported bo must be pinned to GTT, as moving it breaks sharing */
+       ret = amdgpu_bo_reserve(bo, false);
+       if (ret)
+               return ERR_PTR(ret);
+
+       ret = amdgpu_bo_pin(bo, AMDGPU_GEM_DOMAIN_GTT, NULL);
+       if (ret)
+               return ERR_PTR(ret);
+
+       amdgpu_bo_unreserve(bo);
+
        bo->prime_shared_count = 1;
        return &bo->gem_base;
 }
-- 
2.11.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to