diff mbox

next: drm/atomic: Use copy_from_user to copy 64 bit data from user space

Message ID 1421125937-27394-1-git-send-email-linux@roeck-us.net (mailing list archive)
State New, archived
Headers show

Commit Message

Guenter Roeck Jan. 13, 2015, 5:12 a.m. UTC
Copying 64 bit data from user space using get_user is not supported
on all architectures, and may result in the following build error.

ERROR: "__get_user_bad" [drivers/gpu/drm/drm.ko] undefined!

Avoid the problem by using copy_from_user.

Fixes: d34f20d6e2f2 ("drm: Atomic modeset ioctl")
Cc: Rob Clark <robdclark@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
Compile tested only.

 drivers/gpu/drm/drm_atomic.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Daniel Vetter Jan. 14, 2015, 7:46 p.m. UTC | #1
On Mon, Jan 12, 2015 at 09:12:17PM -0800, Guenter Roeck wrote:
> Copying 64 bit data from user space using get_user is not supported
> on all architectures, and may result in the following build error.
>
> ERROR: "__get_user_bad" [drivers/gpu/drm/drm.ko] undefined!
>
> Avoid the problem by using copy_from_user.
>
> Fixes: d34f20d6e2f2 ("drm: Atomic modeset ioctl")
> Cc: Rob Clark <robdclark@gmail.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>

Merged into my drm misc branch, thanks.
-Daniel

> ---
> Compile tested only.
>
>  drivers/gpu/drm/drm_atomic.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 1e38dfc..af3f3df 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1259,7 +1259,9 @@ retry:
>   goto fail;
>   }
>
> - if (get_user(prop_value, prop_values_ptr + copied_props)) {
> + if (copy_from_user(&prop_value,
> +   prop_values_ptr + copied_props,
> +   sizeof(prop_value))) {
>   ret = -EFAULT;
>   goto fail;
>   }
> --
> 2.1.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 1e38dfc..af3f3df 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1259,7 +1259,9 @@  retry:
 				goto fail;
 			}
 
-			if (get_user(prop_value, prop_values_ptr + copied_props)) {
+			if (copy_from_user(&prop_value,
+					   prop_values_ptr + copied_props,
+					   sizeof(prop_value))) {
 				ret = -EFAULT;
 				goto fail;
 			}