On 04.11.2015 14:25, Dan Carpenter wrote: > We recently changed the locking in this function and now there is a > missing unlock on error. Also there are some other resources that we > should probably release as well... > > Fixes: f48b2659f521 ('drm/amdgpu: fix the broken vm->mutex V2') > Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
Yeah indeed, thanks for catching this. Patch is Reviewed-by: Christian König <christian.koenig at amd.com> > --- > I'm not terribly familiar with this code. Please review this one a bit > carefully. > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > index 27ef528..dfc4d02 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > @@ -876,8 +876,10 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, > struct drm_file *filp) > struct amdgpu_job *job; > struct amdgpu_ring * ring = parser->ibs->ring; > job = kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL); > - if (!job) > - return -ENOMEM; > + if (!job) { > + r = -ENOMEM; > + goto out; > + } > job->base.sched = &ring->sched; > job->base.s_entity = &parser->ctx->rings[ring->idx].entity; > job->adev = parser->adev;