> On 7 Oct 2022, at 20:04, Devendra Tewari <devendra.tewari@xxxxxxxxx> wrote: > > > >> No dia 7 de out. de 2022, às 18:58, Kieran Bingham <kieran.bingham@xxxxxxxxxxxxxxxx> escreveu: >> >> Hi Devendra, >> >> Quoting Devendra Tewari (2022-04-22 20:20:31) >>> Fixes clang warning: field within 'v4l2_ext_control' is less than >> >> Can you detail which version of clang this occurs with? Have you tried >> more than one version? >> > > This started happening with version 14.0.1 and I continue to see it with version 15. > >> >>> 'v4l2_ext_control::(anonymous union >>> >>> Signed-off-by: Devendra Tewari <devendra.tewari@xxxxxxxxx> >>> --- >>> include/uapi/linux/videodev2.h | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h >>> index 3768a0a80830..767c52c722cd 100644 >>> --- a/include/uapi/linux/videodev2.h >>> +++ b/include/uapi/linux/videodev2.h >>> @@ -1765,7 +1765,7 @@ struct v4l2_ext_control { >>> struct v4l2_ctrl_vp9_compressed_hdr __user *p_vp9_compressed_hdr_probs; >>> struct v4l2_ctrl_vp9_frame __user *p_vp9_frame; >>> void __user *ptr; >>> - }; >>> + } __attribute__ ((packed)); >> >> This is a curious fix. It's applying a packed attribute to the union, >> which I presume means that it's then applying the packed attribute to >> any item in the union. >> >> The items are all either: __s32, __s64, values - or pointers. >> >> While applying this attribute here may fix the compiler warning, I'm not >> sure it's clear why this is required. This file also has other >> locations where a union inside a packed struct is not marked as packed. >> Should all unions be marked with the attribute? > > Interesting - I need to look deeper into packed. The only explanation I can think of is that this may be the only instance where a union inside a packed struct has other structs that are not packed. > >> Is there any more context from the compiler warning beyond what is >> reported above? > > I'll post a more detailed log asap. > >> >> -- >> Kieran >> >> >>> } __attribute__ ((packed)); >>> >>> struct v4l2_ext_controls { >>> -- >>> 2.25.1 >>> > Thanks, > Devendra Resending because mail daemon rejected rich text message. Thanks, Devendra