Re: [PATCH] videodev2.h: apply packed attribute to union

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Devendra,

Cleaning up some old patches in

On 08/10/2022 13:48, Devendra Tewari wrote:
> 
> 
>> 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.

I haven't heard anything back, so I am rejecting this.

I am also afraid that changing this could cause unexpected ABI changes.

Regards,

	Hans

>>
>>>
>>> --
>>> Kieran
>>>
>>>
>>>> } __attribute__ ((packed));
>>>>
>>>> struct v4l2_ext_controls {
>>>> -- 
>>>> 2.25.1
>>>>
>> Thanks,
>> Devendra
> 
> Resending because mail daemon rejected rich text message.
> 
> Thanks,
> Devendra
> 




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux