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

Ming Lei ming.lei at canonical.com
Tue Dec 6 08:11:08 EST 2011


On Tue, Dec 6, 2011 at 8:55 PM, Arnd Bergmann <arnd at arndb.de> wrote:
> 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.

Looks like it is a bit ugly.

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

I have tried to do this, but video_usercopy needs a few changes
to handle array args if no indirect pointer is passed to kernel.

I am not sure if media guys are happy to accept the changes, :-)

thanks,
--
Ming Lei



More information about the linux-arm-kernel mailing list