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 a8efbb54423f60740fb197f4bcd9a1d28761c9f1..d942654a1de0f08a4cf2970fce080cd9999b6807 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);
 }
 
 /*
This page took 0.026462 seconds and 5 git commands to generate.