On 08/21/2015 02:03 PM, Andrzej Hajda wrote: > Union v4l2_event::u is aligned to 8 bytes on arm32. On arm64 v4l2_event32::u > is aligned to 4 bytes. As a result structures v4l2_event and v4l2_event32 have > different sizes and VIDOC_DQEVENT ioctl does not work from arm32 apps running > on arm64 kernel. The patch fixes it. Using compat_s64 allows to retain 4 bytes > alignment on x86 architecture. What about v4l2_standard32 and v4l2_ext_control32? I very strongly suspect that those will break for arm32 apps on an arm64 as well. I prefer a patch that fixes all three... Regards, Hans > > Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx> > --- > Hi Hans, > > Tested successfully on arm32 app / arm64 kernel. > Thanks for help. > > Regards > Andrzej > --- > drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c > index af63543..52afffe 100644 > --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c > +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c > @@ -738,6 +738,7 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext > struct v4l2_event32 { > __u32 type; > union { > + compat_s64 value64; > __u8 data[64]; > } u; > __u32 pending; > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html