From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f67.google.com ([74.125.82.67]:36100 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752542AbcEaM5H (ORCPT ); Tue, 31 May 2016 08:57:07 -0400 Received: by mail-wm0-f67.google.com with SMTP id q62so32473749wmg.3 for ; Tue, 31 May 2016 05:57:06 -0700 (PDT) Date: Tue, 31 May 2016 14:57:02 +0200 From: Daniel Vetter To: Tomi Valkeinen Cc: dri-devel@lists.freedesktop.org, Dave Airlie , Daniel Vetter , stable@vger.kernel.org Subject: Re: [PATCHv2 3/4] drm: make drm_atomic_set_mode_prop_for_crtc() more reliable Message-ID: <20160531125702.GD7231@phenom.ffwll.local> References: <1464696198-5883-1-git-send-email-tomi.valkeinen@ti.com> <1464696198-5883-4-git-send-email-tomi.valkeinen@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1464696198-5883-4-git-send-email-tomi.valkeinen@ti.com> Sender: stable-owner@vger.kernel.org List-ID: On Tue, May 31, 2016 at 03:03:17PM +0300, Tomi Valkeinen wrote: > drm_atomic_set_mode_prop_for_crtc() does not clear the state->mode, so > old data may be left there when a new mode is set, possibly causing odd > issues. > > This patch improves the situation by always clearing the state->mode > first. > > Signed-off-by: Tomi Valkeinen > Cc: stable@vger.kernel.org Reviewed-by: Daniel Vetter > --- > drivers/gpu/drm/drm_atomic.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c > index 3ff1ed7b33db..c204ef32df16 100644 > --- a/drivers/gpu/drm/drm_atomic.c > +++ b/drivers/gpu/drm/drm_atomic.c > @@ -351,6 +351,8 @@ int drm_atomic_set_mode_prop_for_crtc(struct drm_crtc_state *state, > drm_property_unreference_blob(state->mode_blob); > state->mode_blob = NULL; > > + memset(&state->mode, 0, sizeof(state->mode)); > + > if (blob) { > if (blob->length != sizeof(struct drm_mode_modeinfo) || > drm_mode_convert_umode(&state->mode, > @@ -363,7 +365,6 @@ int drm_atomic_set_mode_prop_for_crtc(struct drm_crtc_state *state, > DRM_DEBUG_ATOMIC("Set [MODE:%s] for CRTC state %p\n", > state->mode.name, state); > } else { > - memset(&state->mode, 0, sizeof(state->mode)); > state->enable = false; > DRM_DEBUG_ATOMIC("Set [NOMODE] for CRTC state %p\n", > state); > -- > 2.5.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch