[PATCH 01/22] drm: Add drm_mode_init()
Andrzej Hajda
andrzej.hajda at intel.com
Fri Feb 18 12:23:06 UTC 2022
On 18.02.2022 12:56, Ville Syrjälä wrote:
> On Fri, Feb 18, 2022 at 12:22:44PM +0100, Andrzej Hajda wrote:
>>
>> On 18.02.2022 11:03, Ville Syrjala wrote:
>>> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>>
>>> Add a variant of drm_mode_copy() that explicitly clears out
>>> the list head of the destination mode. Helpful to guarantee
>>> we don't have stack garbage left in there for on-stack modes.
>>>
>>> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>> ---
>>> drivers/gpu/drm/drm_modes.c | 17 +++++++++++++++++
>>> include/drm/drm_modes.h | 2 ++
>>> 2 files changed, 19 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
>>> index 96b13e36293c..40d4ce4a1da4 100644
>>> --- a/drivers/gpu/drm/drm_modes.c
>>> +++ b/drivers/gpu/drm/drm_modes.c
>>> @@ -892,6 +892,23 @@ void drm_mode_copy(struct drm_display_mode *dst, const struct drm_display_mode *
>>> }
>>> EXPORT_SYMBOL(drm_mode_copy);
>>>
>>> +/**
>>> + * drm_mode_init - initialize the mode from another mode
>>> + * @dst: mode to overwrite
>>> + * @src: mode to copy
>>> + *
>>> + * Copy an existing mode into another mode, zeroing the
>>> + * list head of the destination mode. Typically used
>>> + * to guarantee the list head is not left with stack
>>> + * garbage in on-stack modes.
>>> + */
>>> +void drm_mode_init(struct drm_display_mode *dst, const struct drm_display_mode *src)
>>> +{
>>> + memset(dst, 0, sizeof(*dst));
>> Why not just clear the list head? Or maybe poison it? It would be more
>> cleaner.
> Then we have two places that need to be updated if some other field
> gets introduced that needs preserving. With a full memset() we only
> have to care about drm_mode_copy(). Don't see much point in
> micro-optimizing this thing.
>
In such case DOC should be modified to avoid updating it "if some other
field..." :)
Anyway:
Reviewed-by: Andrzej Hajda <andrzej.hajda at intel.com>
Regards
Andrzej
More information about the dri-devel
mailing list