brcm2708: update linux 4.4 patches to latest version
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0536-drm-vc4-Fix-a-couple-error-codes-in-vc4_cl_lookup_bo.patch
1 From 33286005886531c3f54e84b474b10f05f7c1771e Mon Sep 17 00:00:00 2001
2 From: Dan Carpenter <dan.carpenter@oracle.com>
3 Date: Thu, 13 Oct 2016 11:54:31 +0300
4 Subject: [PATCH] drm/vc4: Fix a couple error codes in vc4_cl_lookup_bos()
5
6 If the allocation fails the current code returns success. If
7 copy_from_user() fails it returns the number of bytes remaining instead
8 of -EFAULT.
9
10 Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")
11 Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
12 Reviewed-by: Eric Anholt <eric@anholt.net>
13 (cherry picked from commit b2cdeb19f16ad984eb5bb9193f793d05a8101511)
14 ---
15 drivers/gpu/drm/vc4/vc4_gem.c | 9 +++++----
16 1 file changed, 5 insertions(+), 4 deletions(-)
17
18 --- a/drivers/gpu/drm/vc4/vc4_gem.c
19 +++ b/drivers/gpu/drm/vc4/vc4_gem.c
20 @@ -560,14 +560,15 @@ vc4_cl_lookup_bos(struct drm_device *dev
21
22 handles = drm_malloc_ab(exec->bo_count, sizeof(uint32_t));
23 if (!handles) {
24 + ret = -ENOMEM;
25 DRM_ERROR("Failed to allocate incoming GEM handles\n");
26 goto fail;
27 }
28
29 - ret = copy_from_user(handles,
30 - (void __user *)(uintptr_t)args->bo_handles,
31 - exec->bo_count * sizeof(uint32_t));
32 - if (ret) {
33 + if (copy_from_user(handles,
34 + (void __user *)(uintptr_t)args->bo_handles,
35 + exec->bo_count * sizeof(uint32_t))) {
36 + ret = -EFAULT;
37 DRM_ERROR("Failed to copy in GEM handles\n");
38 goto fail;
39 }