diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index f099cab9ca81..ceddb7708d7b 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -2023,12 +2023,12 @@ long kgsl_ioctl_gpu_aux_command(struct kgsl_device_private *dev_priv, goto err; } + drawobjs[index++] = DRAWOBJ(timelineobj); + ret = kgsl_drawobj_add_timeline(dev_priv, timelineobj, u64_to_user_ptr(generic.priv), generic.size); if (ret) goto err; - - drawobjs[index++] = DRAWOBJ(timelineobj); } else { ret = -EINVAL; goto err; diff --git a/drivers/gpu/msm/kgsl_drawobj.c b/drivers/gpu/msm/kgsl_drawobj.c index 9f7883e9e24d..b2107bc2ac85 100644 --- a/drivers/gpu/msm/kgsl_drawobj.c +++ b/drivers/gpu/msm/kgsl_drawobj.c @@ -900,6 +900,7 @@ err: kgsl_timeline_put(timelineobj->timelines[i].timeline); kvfree(timelineobj->timelines); + timelineobj->timelines = NULL; return ret; }