Message ID | 20170126114409.9115-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jan 26, 2017 at 11:44:09AM +0000, Chris Wilson wrote: > Since moving drm_crtc_get_hv_timings() into drm_modes.c, the compiler > has been able to get smarter and spots that drm_mode_copy() is trying to > preserve garbage from the stack. > > Fixes: 196cd5d3758c ("drm: s/drm_crtc_get_hv_timings/drm_mode_get_hv_timings/") > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Daniel Vetter <daniel.vetter@intel.com> > Cc: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_modes.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c > index 73ed6399c3fb..a8616b1a8d22 100644 > --- a/drivers/gpu/drm/drm_modes.c > +++ b/drivers/gpu/drm/drm_modes.c > @@ -808,9 +808,8 @@ EXPORT_SYMBOL(drm_mode_vrefresh); > void drm_mode_get_hv_timing(const struct drm_display_mode *mode, > int *hdisplay, int *vdisplay) > { > - struct drm_display_mode adjusted; > + struct drm_display_mode adjusted = *mode; > > - drm_mode_copy(&adjusted, mode); > drm_mode_set_crtcinfo(&adjusted, CRTC_STEREO_DOUBLE_ONLY); > *hdisplay = adjusted.crtc_hdisplay; > *vdisplay = adjusted.crtc_vdisplay; > -- > 2.11.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> -----Original Message----- > From: Chris Wilson [mailto:chris.ickle.wilson@gmail.com] On Behalf Of Chris > Wilson > Sent: Thursday, January 26, 2017 6:44 AM > To: dri-devel@lists.freedesktop.org > Cc: Chris Wilson; Daniel Vetter; Deucher, Alexander > Subject: [PATCH] drm: Silence the compiler for drm_mode_get_hv_timings() > > Since moving drm_crtc_get_hv_timings() into drm_modes.c, the compiler > has been able to get smarter and spots that drm_mode_copy() is trying to > preserve garbage from the stack. > > Fixes: 196cd5d3758c ("drm: > s/drm_crtc_get_hv_timings/drm_mode_get_hv_timings/") > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Daniel Vetter <daniel.vetter@intel.com> > Cc: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> > --- > drivers/gpu/drm/drm_modes.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c > index 73ed6399c3fb..a8616b1a8d22 100644 > --- a/drivers/gpu/drm/drm_modes.c > +++ b/drivers/gpu/drm/drm_modes.c > @@ -808,9 +808,8 @@ EXPORT_SYMBOL(drm_mode_vrefresh); > void drm_mode_get_hv_timing(const struct drm_display_mode *mode, > int *hdisplay, int *vdisplay) > { > - struct drm_display_mode adjusted; > + struct drm_display_mode adjusted = *mode; > > - drm_mode_copy(&adjusted, mode); > drm_mode_set_crtcinfo(&adjusted, CRTC_STEREO_DOUBLE_ONLY); > *hdisplay = adjusted.crtc_hdisplay; > *vdisplay = adjusted.crtc_vdisplay; > -- > 2.11.0
On Thu, Jan 26, 2017 at 02:46:55PM +0200, Ville Syrjälä wrote: > On Thu, Jan 26, 2017 at 11:44:09AM +0000, Chris Wilson wrote: > > Since moving drm_crtc_get_hv_timings() into drm_modes.c, the compiler > > has been able to get smarter and spots that drm_mode_copy() is trying to > > preserve garbage from the stack. > > > > Fixes: 196cd5d3758c ("drm: s/drm_crtc_get_hv_timings/drm_mode_get_hv_timings/") > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > > Cc: Daniel Vetter <daniel.vetter@intel.com> > > Cc: Alex Deucher <alexander.deucher@amd.com> > > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Could have directly pushed to drm-misc-next ... *hint* Thanks for patch&review, applied. -Daniel > > > --- > > drivers/gpu/drm/drm_modes.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c > > index 73ed6399c3fb..a8616b1a8d22 100644 > > --- a/drivers/gpu/drm/drm_modes.c > > +++ b/drivers/gpu/drm/drm_modes.c > > @@ -808,9 +808,8 @@ EXPORT_SYMBOL(drm_mode_vrefresh); > > void drm_mode_get_hv_timing(const struct drm_display_mode *mode, > > int *hdisplay, int *vdisplay) > > { > > - struct drm_display_mode adjusted; > > + struct drm_display_mode adjusted = *mode; > > > > - drm_mode_copy(&adjusted, mode); > > drm_mode_set_crtcinfo(&adjusted, CRTC_STEREO_DOUBLE_ONLY); > > *hdisplay = adjusted.crtc_hdisplay; > > *vdisplay = adjusted.crtc_vdisplay; > > -- > > 2.11.0 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Ville Syrjälä > Intel OTC > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Thu, Jan 26, 2017 at 04:54:37PM +0100, Daniel Vetter wrote: > On Thu, Jan 26, 2017 at 02:46:55PM +0200, Ville Syrjälä wrote: > > On Thu, Jan 26, 2017 at 11:44:09AM +0000, Chris Wilson wrote: > > > Since moving drm_crtc_get_hv_timings() into drm_modes.c, the compiler > > > has been able to get smarter and spots that drm_mode_copy() is trying to > > > preserve garbage from the stack. > > > > > > Fixes: 196cd5d3758c ("drm: s/drm_crtc_get_hv_timings/drm_mode_get_hv_timings/") > > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > > > Cc: Daniel Vetter <daniel.vetter@intel.com> > > > Cc: Alex Deucher <alexander.deucher@amd.com> > > > > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Could have directly pushed to drm-misc-next ... *hint* That would miss the chance for some good bikeshedding ;) > > Thanks for patch&review, applied. > -Daniel > > > > > > --- > > > drivers/gpu/drm/drm_modes.c | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c > > > index 73ed6399c3fb..a8616b1a8d22 100644 > > > --- a/drivers/gpu/drm/drm_modes.c > > > +++ b/drivers/gpu/drm/drm_modes.c > > > @@ -808,9 +808,8 @@ EXPORT_SYMBOL(drm_mode_vrefresh); > > > void drm_mode_get_hv_timing(const struct drm_display_mode *mode, > > > int *hdisplay, int *vdisplay) > > > { > > > - struct drm_display_mode adjusted; > > > + struct drm_display_mode adjusted = *mode; > > > > > > - drm_mode_copy(&adjusted, mode); > > > drm_mode_set_crtcinfo(&adjusted, CRTC_STEREO_DOUBLE_ONLY); > > > *hdisplay = adjusted.crtc_hdisplay; > > > *vdisplay = adjusted.crtc_vdisplay; > > > -- > > > 2.11.0 > > > > > > _______________________________________________ > > > dri-devel mailing list > > > dri-devel@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > -- > > Ville Syrjälä > > Intel OTC > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 73ed6399c3fb..a8616b1a8d22 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -808,9 +808,8 @@ EXPORT_SYMBOL(drm_mode_vrefresh); void drm_mode_get_hv_timing(const struct drm_display_mode *mode, int *hdisplay, int *vdisplay) { - struct drm_display_mode adjusted; + struct drm_display_mode adjusted = *mode; - drm_mode_copy(&adjusted, mode); drm_mode_set_crtcinfo(&adjusted, CRTC_STEREO_DOUBLE_ONLY); *hdisplay = adjusted.crtc_hdisplay; *vdisplay = adjusted.crtc_vdisplay;
Since moving drm_crtc_get_hv_timings() into drm_modes.c, the compiler has been able to get smarter and spots that drm_mode_copy() is trying to preserve garbage from the stack. Fixes: 196cd5d3758c ("drm: s/drm_crtc_get_hv_timings/drm_mode_get_hv_timings/") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Alex Deucher <alexander.deucher@amd.com> --- drivers/gpu/drm/drm_modes.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)