drm/amdgpu: free handles after fini the context
authorLeo Liu <leo.liu@amd.com>
Fri, 22 Jul 2016 18:13:11 +0000 (14:13 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 29 Jul 2016 18:37:05 +0000 (14:37 -0400)
This will make sure all the submissions from different contexts gets
finished, and then we close the session and free up the handles.

This will fix the issue that session clean-up is not get done properly,
when with the command `kill -9'

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

index a8efbb5..d942654 100644 (file)
@@ -584,6 +584,9 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
 
        amdgpu_ctx_mgr_fini(&fpriv->ctx_mgr);
 
+       amdgpu_uvd_free_handles(adev, file_priv);
+       amdgpu_vce_free_handles(adev, file_priv);
+
        amdgpu_vm_fini(adev, &fpriv->vm);
 
        idr_for_each_entry(&fpriv->bo_list_handles, list, handle)
@@ -608,10 +611,6 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
 void amdgpu_driver_preclose_kms(struct drm_device *dev,
                                struct drm_file *file_priv)
 {
-       struct amdgpu_device *adev = dev->dev_private;
-
-       amdgpu_uvd_free_handles(adev, file_priv);
-       amdgpu_vce_free_handles(adev, file_priv);
 }
 
 /*