diff options
author | Peter Robinson <pbrobinson@gmail.com> | 2016-11-08 11:05:09 +0000 |
---|---|---|
committer | Peter Robinson <pbrobinson@gmail.com> | 2016-11-08 11:05:09 +0000 |
commit | c0853e1c3f92ea5ae4365335936f0a2c043b963d (patch) | |
tree | e64c6a5077e008f3842718e3b3147a3a6e6804e6 /bcm283x-vc4-fixes.patch | |
parent | c9d9163df95e0bcbdb061e1bc011eecc19c737de (diff) | |
download | kernel-c0853e1c3f92ea5ae4365335936f0a2c043b963d.tar.gz kernel-c0853e1c3f92ea5ae4365335936f0a2c043b963d.tar.xz kernel-c0853e1c3f92ea5ae4365335936f0a2c043b963d.zip |
Sync some ARM patches from F-25 branch
Diffstat (limited to 'bcm283x-vc4-fixes.patch')
-rw-r--r-- | bcm283x-vc4-fixes.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/bcm283x-vc4-fixes.patch b/bcm283x-vc4-fixes.patch new file mode 100644 index 000000000..d42ceb62a --- /dev/null +++ b/bcm283x-vc4-fixes.patch @@ -0,0 +1,43 @@ +From 30772942cc1095c3129eecfa182e2c568e566b9d Mon Sep 17 00:00:00 2001 +From: Dan Carpenter <dan.carpenter@oracle.com> +Date: Thu, 13 Oct 2016 11:54:31 +0300 +Subject: [PATCH] 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.") +Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> +Reviewed-by: Eric Anholt <eric@anholt.net> +--- + drivers/gpu/drm/vc4/vc4_gem.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c +index ae1609e..4050540 100644 +--- a/drivers/gpu/drm/vc4/vc4_gem.c ++++ b/drivers/gpu/drm/vc4/vc4_gem.c +@@ -548,14 +548,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; + } +-- +2.9.3 + |