On 26/04/16 10:21, Matthew Auld wrote:
The teardown path in render_state_init leaves so->obj != NULL. Suggested-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> Signed-off-by: Matthew Auld <matthew.auld@xxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem_render_state.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c index 71611bf..10f3cf0 100644 --- a/drivers/gpu/drm/i915/i915_gem_render_state.c +++ b/drivers/gpu/drm/i915/i915_gem_render_state.c @@ -70,6 +70,7 @@ static int render_state_init(struct render_state *so, struct drm_device *dev) free_gem: drm_gem_object_unreference(&so->obj->base); + so->obj = NULL; return ret; }
It doesn't actually matter, because 'so' is pointing to a local object a few frames up the callstack. But I don't think this function is entitled to assume that; it should leave everything in a consistent state so there aren't any dangling pointers to objects that have been freed lying around - someday the argument may turn into a per-engine static or some other long-lived thing. So,
Reviewed-by: Dave Gordon <david.s.gordon@xxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx