diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index ae037e5b6ad0..a582ef553499 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
@@ -1079,6 +1079,11 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev, | |||
1079 | if (r) | 1079 | if (r) |
1080 | goto error_free; | 1080 | goto error_free; |
1081 | 1081 | ||
1082 | /* Keep a reference to the page table to avoid freeing | ||
1083 | * them up in the wrong order. | ||
1084 | */ | ||
1085 | pt->parent = amdgpu_bo_ref(vm->page_directory); | ||
1086 | |||
1082 | r = amdgpu_vm_clear_bo(adev, pt); | 1087 | r = amdgpu_vm_clear_bo(adev, pt); |
1083 | if (r) { | 1088 | if (r) { |
1084 | amdgpu_bo_unref(&pt); | 1089 | amdgpu_bo_unref(&pt); |