aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2019-01-30 08:12:51 -0500
committerAlex Deucher <alexander.deucher@amd.com>2019-02-05 21:16:22 -0500
commit90d647222a8f004bf1430ecea3099ebcc54bfc21 (patch)
treef101210c63306297abff087ff1b563ebe8548f14 /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
parent12a8bd8862ebd7d6e0f764120e2f322ddc077a11 (diff)
drm/amdgpu: fix waiting for BO moves with CPU based PD/PT updates
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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index a404ac17e5ae..93b936f7de4b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1781,13 +1781,18 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
1781 if (pages_addr) 1781 if (pages_addr)
1782 params.src = ~0; 1782 params.src = ~0;
1783 1783
1784 /* Wait for PT BOs to be free. PTs share the same resv. object 1784 /* Wait for PT BOs to be idle. PTs share the same resv. object
1785 * as the root PD BO 1785 * as the root PD BO
1786 */ 1786 */
1787 r = amdgpu_vm_wait_pd(adev, vm, owner); 1787 r = amdgpu_vm_wait_pd(adev, vm, owner);
1788 if (unlikely(r)) 1788 if (unlikely(r))
1789 return r; 1789 return r;
1790 1790
1791 /* Wait for any BO move to be completed */
1792 r = dma_fence_wait(exclusive, true);
1793 if (unlikely(r))
1794 return r;
1795
1791 params.func = amdgpu_vm_cpu_set_ptes; 1796 params.func = amdgpu_vm_cpu_set_ptes;
1792 params.pages_addr = pages_addr; 1797 params.pages_addr = pages_addr;
1793 return amdgpu_vm_update_ptes(&params, start, last + 1, 1798 return amdgpu_vm_update_ptes(&params, start, last + 1,