drm/radeon: add userptr flag to register MMU notifier v3
Whenever userspace mapping related to our userptr change we wait for it to become idle and unmap it from GTT. v2: rebased, fix mutex unlock in error path v3: improve commit message Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:

committed by
Alex Deucher

parent
2a84a4476d
commit
341cb9e426
@@ -291,7 +291,8 @@ int radeon_gem_userptr_ioctl(struct drm_device *dev, void *data,
|
||||
|
||||
/* reject unknown flag values */
|
||||
if (args->flags & ~(RADEON_GEM_USERPTR_READONLY |
|
||||
RADEON_GEM_USERPTR_ANONONLY | RADEON_GEM_USERPTR_VALIDATE))
|
||||
RADEON_GEM_USERPTR_ANONONLY | RADEON_GEM_USERPTR_VALIDATE |
|
||||
RADEON_GEM_USERPTR_REGISTER))
|
||||
return -EINVAL;
|
||||
|
||||
/* readonly pages not tested on older hardware */
|
||||
@@ -312,6 +313,12 @@ int radeon_gem_userptr_ioctl(struct drm_device *dev, void *data,
|
||||
if (r)
|
||||
goto release_object;
|
||||
|
||||
if (args->flags & RADEON_GEM_USERPTR_REGISTER) {
|
||||
r = radeon_mn_register(bo, args->addr);
|
||||
if (r)
|
||||
goto release_object;
|
||||
}
|
||||
|
||||
if (args->flags & RADEON_GEM_USERPTR_VALIDATE) {
|
||||
down_read(¤t->mm->mmap_sem);
|
||||
r = radeon_bo_reserve(bo, true);
|
||||
|
Reference in New Issue
Block a user