drm/amdgpu: Fix race condition in MMU notifier release

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>
This commit is contained in:
Felix Kuehling 2016-01-14 00:35:08 -05:00 committed by Alex Deucher
parent 477d9f0ea6
commit fa5b500030

View 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);
}