From: Daniel Mentz <danielme...@google.com>

commit 025a26fa14f8fd55d50ab284a30c016a5be953d0 upstream.

Commit b2787845fb91 ("V4L/DVB (5289): Add support for video output
overlays.") added the field global_alpha to struct v4l2_window but did
not update the compat layer accordingly. This change adds global_alpha
to struct v4l2_window32 and copies the value for global_alpha back and
forth.

Signed-off-by: Daniel Mentz <danielme...@google.com>
Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mche...@s-opensource.com>
---
 drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c 
b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
index 626a3b345075..88e4f5716387 100644
--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
+++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
@@ -45,6 +45,7 @@ struct v4l2_window32 {
        compat_caddr_t          clips; /* actually struct v4l2_clip32 * */
        __u32                   clipcount;
        compat_caddr_t          bitmap;
+       __u8                    global_alpha;
 };
 
 static int get_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 
__user *up)
@@ -53,7 +54,8 @@ static int get_v4l2_window32(struct v4l2_window *kp, struct 
v4l2_window32 __user
            copy_from_user(&kp->w, &up->w, sizeof(up->w)) ||
            get_user(kp->field, &up->field) ||
            get_user(kp->chromakey, &up->chromakey) ||
-           get_user(kp->clipcount, &up->clipcount))
+           get_user(kp->clipcount, &up->clipcount) ||
+           get_user(kp->global_alpha, &up->global_alpha))
                return -EFAULT;
        if (kp->clipcount > 2048)
                return -EINVAL;
@@ -86,7 +88,8 @@ static int put_v4l2_window32(struct v4l2_window *kp, struct 
v4l2_window32 __user
        if (copy_to_user(&up->w, &kp->w, sizeof(kp->w)) ||
            put_user(kp->field, &up->field) ||
            put_user(kp->chromakey, &up->chromakey) ||
-           put_user(kp->clipcount, &up->clipcount))
+           put_user(kp->clipcount, &up->clipcount) ||
+           put_user(kp->global_alpha, &up->global_alpha))
                return -EFAULT;
        return 0;
 }
-- 
2.15.1

Reply via email to