Commit 09013efe authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab

media: staging: atomisp: Fix atomisp_overlay32 compat handling

The struct atomisp_overlay contains overlay_start_x and overlay_start_y
fields. Instead of copying the value of the overlay_start_x field between
the two structs, the value of the overlay_start_y field of the compat
struct was copied to the overlay_start_x field of the 64-bit kernel struct
in get operation and back in put. The overlay_start_x field value was not
copied from or to the user space struct.

Fix this so that the value of overlay_start_x is copied to overlay_start_x
and the value of overlay_start_y is copied to overlay_start_y.

Also do copy blend_overlay_perc_u field only once.
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent f8b39c65
...@@ -399,7 +399,8 @@ static int get_atomisp_overlay32(struct atomisp_overlay *kp, ...@@ -399,7 +399,8 @@ static int get_atomisp_overlay32(struct atomisp_overlay *kp,
get_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) || get_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) ||
get_user(kp->blend_overlay_perc_v, &up->blend_overlay_perc_v) || get_user(kp->blend_overlay_perc_v, &up->blend_overlay_perc_v) ||
get_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) || get_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) ||
get_user(kp->overlay_start_x, &up->overlay_start_y)) get_user(kp->overlay_start_x, &up->overlay_start_x) ||
get_user(kp->overlay_start_y, &up->overlay_start_y))
return -EFAULT; return -EFAULT;
kp->frame = (void __force *)compat_ptr(frame); kp->frame = (void __force *)compat_ptr(frame);
...@@ -423,7 +424,8 @@ static int put_atomisp_overlay32(struct atomisp_overlay *kp, ...@@ -423,7 +424,8 @@ static int put_atomisp_overlay32(struct atomisp_overlay *kp,
put_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) || put_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) ||
put_user(kp->blend_overlay_perc_v, &up->blend_overlay_perc_v) || put_user(kp->blend_overlay_perc_v, &up->blend_overlay_perc_v) ||
put_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) || put_user(kp->blend_overlay_perc_u, &up->blend_overlay_perc_u) ||
put_user(kp->overlay_start_x, &up->overlay_start_y)) put_user(kp->overlay_start_x, &up->overlay_start_x)
put_user(kp->overlay_start_y, &up->overlay_start_y))
return -EFAULT; return -EFAULT;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment