Otherwise we open up the possibility to use uninitialized memory.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
                if (pages_addr)
                        params.src = ~0;
 
-               /* Wait for PT BOs to be free. PTs share the same resv. object
+               /* Wait for PT BOs to be idle. PTs share the same resv. object
                 * as the root PD BO
                 */
                r = amdgpu_vm_wait_pd(adev, vm, owner);
                if (unlikely(r))
                        return r;
 
+               /* Wait for any BO move to be completed */
+               r = dma_fence_wait(exclusive, true);
+               if (unlikely(r))
+                       return r;
+
                params.func = amdgpu_vm_cpu_set_ptes;
                params.pages_addr = pages_addr;
                return amdgpu_vm_update_ptes(¶ms, start, last + 1,