On Tue, May 31, 2016 at 12:17:23PM +0300, Tomi Valkeinen wrote: > After commit 027b3f8ba9277410c3191d72d1ed2c6146d8a668 ("drm/modes: stop > handling framebuffer special") extra fb refs are left around when doing > atomic modesetting. > > The problem is that the new drm_property_change_valid_get() does not > return anything in the '**ref' parameter, which causes > 'drm_property_change_valid_put' never to be called. > > For some reason this doesn't cause problems with legacy API. > > Also, previously the code only set the 'ref' variable for fbs, with this > patch the 'ref' is set for all objects. > > So this is a bit of an RFC, as I don't understand all what's going on > here. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> On patches 1,2&4: Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> Imo everything but the sti patche should also grow a cc: stable, plus an appropriate Fixes: line for this one here. -Daniel > --- > drivers/gpu/drm/drm_crtc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index 06b6e2173697..0e3cc66aa8b7 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -4839,7 +4839,8 @@ bool drm_property_change_valid_get(struct drm_property *property, > if (value == 0) > return true; > > - return _object_find(property->dev, value, property->values[0]) != NULL; > + *ref = _object_find(property->dev, value, property->values[0]); > + return *ref != NULL; > } > > for (i = 0; i < property->num_values; i++) > -- > 2.5.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel