drm/amdgpu: Fix race condition in MMU notifier release
authorFelix Kuehling <Felix.Kuehling@amd.com>
Thu, 14 Jan 2016 05:35:08 +0000 (00:35 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 16 Feb 2016 22:17:14 +0000 (17:17 -0500)
The release notifier can get called a second time from
mmu_notifier_unregister depending on a race between
__mmu_notifier_release and amdgpu_mn_destroy. Use
mmu_notifier_unregister_no_release to avoid this.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c

index 61f0e3c3172a25f6bc5535326a36594ebb9eae65..1b2105ca5af1927fef31f45917b2a1034494f844 100644 (file)
@@ -86,7 +86,7 @@ static void amdgpu_mn_destroy(struct work_struct *work)
        }
        mutex_unlock(&adev->mn_lock);
        up_write(&rmn->mm->mmap_sem);
-       mmu_notifier_unregister(&rmn->mn, rmn->mm);
+       mmu_notifier_unregister_no_release(&rmn->mn, rmn->mm);
        kfree(rmn);
 }