|
@@ -834,7 +834,8 @@ struct v4l2_ext_controls32 {
|
|
__u32 which;
|
|
__u32 which;
|
|
__u32 count;
|
|
__u32 count;
|
|
__u32 error_idx;
|
|
__u32 error_idx;
|
|
- __u32 reserved[2];
|
|
|
|
|
|
+ __s32 request_fd;
|
|
|
|
+ __u32 reserved[1];
|
|
compat_caddr_t controls; /* actually struct v4l2_ext_control32 * */
|
|
compat_caddr_t controls; /* actually struct v4l2_ext_control32 * */
|
|
};
|
|
};
|
|
|
|
|
|
@@ -909,6 +910,7 @@ static int get_v4l2_ext_controls32(struct file *file,
|
|
get_user(count, &p32->count) ||
|
|
get_user(count, &p32->count) ||
|
|
put_user(count, &p64->count) ||
|
|
put_user(count, &p64->count) ||
|
|
assign_in_user(&p64->error_idx, &p32->error_idx) ||
|
|
assign_in_user(&p64->error_idx, &p32->error_idx) ||
|
|
|
|
+ assign_in_user(&p64->request_fd, &p32->request_fd) ||
|
|
copy_in_user(p64->reserved, p32->reserved, sizeof(p64->reserved)))
|
|
copy_in_user(p64->reserved, p32->reserved, sizeof(p64->reserved)))
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
|
|
|
|
@@ -974,6 +976,7 @@ static int put_v4l2_ext_controls32(struct file *file,
|
|
get_user(count, &p64->count) ||
|
|
get_user(count, &p64->count) ||
|
|
put_user(count, &p32->count) ||
|
|
put_user(count, &p32->count) ||
|
|
assign_in_user(&p32->error_idx, &p64->error_idx) ||
|
|
assign_in_user(&p32->error_idx, &p64->error_idx) ||
|
|
|
|
+ assign_in_user(&p32->request_fd, &p64->request_fd) ||
|
|
copy_in_user(p32->reserved, p64->reserved, sizeof(p32->reserved)) ||
|
|
copy_in_user(p32->reserved, p64->reserved, sizeof(p32->reserved)) ||
|
|
get_user(kcontrols, &p64->controls))
|
|
get_user(kcontrols, &p64->controls))
|
|
return -EFAULT;
|
|
return -EFAULT;
|