[PATCH 01/22] drm: Add drm_mode_init()
Ville Syrjälä
ville.syrjala at linux.intel.com
Fri Feb 18 11:56:58 UTC 2022
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.
--
Ville Syrjälä
Intel
More information about the dri-devel
mailing list