drm/amdkfd: Add sync after creating vram bo
authorjsg <jsg@openbsd.org>
Thu, 2 Feb 2023 03:56:28 +0000 (03:56 +0000)
committerjsg <jsg@openbsd.org>
Thu, 2 Feb 2023 03:56:28 +0000 (03:56 +0000)
From Eric Huang
92af2d3b57a1afdfdcafb1c6a07ffd89cf3e98fb in linux-6.1.y/6.1.9
ba029e9991d9be90a28b6a0ceb25e9a6fb348829 in mainline linux

sys/dev/pci/drm/amd/amdkfd/kfd_svm.c

index 64fdf63..63feea0 100644 (file)
@@ -570,6 +570,15 @@ svm_range_vram_node_new(struct amdgpu_device *adev, struct svm_range *prange,
                goto reserve_bo_failed;
        }
 
+       if (clear) {
+               r = amdgpu_bo_sync_wait(bo, AMDGPU_FENCE_OWNER_KFD, false);
+               if (r) {
+                       pr_debug("failed %d to sync bo\n", r);
+                       amdgpu_bo_unreserve(bo);
+                       goto reserve_bo_failed;
+               }
+       }
+
        r = dma_resv_reserve_fences(bo->tbo.base.resv, 1);
        if (r) {
                pr_debug("failed %d to reserve bo\n", r);