Re: [RFC PATCH v1 5/7] media: v4l2: introduce two IOCTLs for face detection

From: Arnd Bergmann
Date: Tue Dec 06 2011 - 07:56:17 EST


On Tuesday 06 December 2011, Ming Lei wrote:
> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> index 073eb4d..8aeaa1e 100644
> --- a/include/linux/videodev2.h
> +++ b/include/linux/videodev2.h
> @@ -2214,7 +2214,12 @@ struct v4l2_fd_result {
> __u32 buf_index;
> __u32 face_cnt;
> __u32 reserved[6];
> - struct v4l2_fd_detection *fd;
> +
> + /*make 64/32 compatible*/
> + union {
> + struct v4l2_fd_detection *fd;
> + __u64 dummy;
> + };
> };
>

That's not compatible, at least not on any big-endian architecture.
If you want to have an indirect pointer, you have to cast it to the
__u64 member in user space and back in kernel space.

Using an array added to the end of the v4l2_fd_result structure
rather than a pointer would really make this easier IMHO.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/