Skip to contentSkip to conversation

drm/vc4: Fix a couple error codes in vc4_cl_lookup_bos()

PATCH In review Dan Carpenter 2 participants 3 messages Oct 13, 2016 – Oct 17, 2016

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm/vc4: Fix a couple error codes in vc4_cl_lookup_bos()

If the allocation fails the current code returns success. If copy_from_user() fails it returns the number of bytes remaining instead of -EFAULT.

Fixes d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")
drivers/gpu/drm/vc4/vc4_gem.c +5 -4
index 47a095f..303f23c 100644
@@ -544,14 +544,15 @@ vc4_cl_lookup_bos(struct drm_device *dev,
 
 	handles = drm_malloc_ab(exec->bo_count, sizeof(uint32_t));
 	if (!handles) {
+		ret = -ENOMEM;
 		DRM_ERROR("Failed to allocate incoming GEM handles\n");
 		goto fail;
 	}
 
-	ret = copy_from_user(handles,
-			     (void __user *)(uintptr_t)args->bo_handles,
-			     exec->bo_count * sizeof(uint32_t));
-	if (ret) {
+	if (copy_from_user(handles,
+			   (void __user *)(uintptr_t)args->bo_handles,
+			   exec->bo_count * sizeof(uint32_t))) {
+		ret = -EFAULT;
 		DRM_ERROR("Failed to copy in GEM handles\n");
 		goto fail;
 	}
#1 lore raw
Quoted 6 lines · Dan Carpenter

If the allocation fails the current code returns success. If copy_from_user() fails it returns the number of bytes remaining instead of -EFAULT.

Fixes d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")

Looks good. Waiting for rc1 to show up to put together a -next.

#2 lore raw
In reply to Dan Carpenter
Quoted 6 lines · Dan Carpenter

If the allocation fails the current code returns success. If copy_from_user() fails it returns the number of bytes remaining instead of -EFAULT.

Fixes d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")

Reviewed and applied to drm-vc4-next. Thanks!