⬢ DragonFlyBSD Kernel Audit
DF-4429 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/radeon/radeon_ttm.c
+++ b/sys/dev/drm/radeon/radeon_ttm.c
@@ -232,16 +232,16 @@ static void radeon_move_null(struct ttm_buffer_object *bo,
 	new_mem->mm_node = NULL;
 }
 
-static int radeon_verify_access(struct ttm_buffer_object *bo, struct file *filp)
-{
-#if 0
-	struct radeon_bo *rbo = container_of(bo, struct radeon_bo, tbo);
-#endif
+static int radeon_verify_access(struct ttm_buffer_object *bo, struct file *filp)
+{
+	struct radeon_bo *rbo = container_of(bo, struct radeon_bo, tbo);
 
-	if (radeon_ttm_tt_has_userptr(bo->ttm))
-		return -EPERM;
+	if (radeon_ttm_tt_has_userptr(bo->ttm))
+		return -EPERM;
 
-	return 0;
-}
+	return drm_vma_node_verify_access(&rbo->gem_base.vma_node,
+					  filp->private_data);
+}
 
 static void radeon_move_null(struct ttm_buffer_object *bo,
 			     struct ttm_mem_reg *new_mem)