On Tue, Apr 15, 2014 at 5:28 AM, Christian König <deathsimple@xxxxxxxxxxx> wrote: > From: Quentin Casasnovas <quentin.casasnovas@xxxxxxxxxx> > > On bo reservation failure, we end up leaking fpriv. > > v2 (chk): rebased and added missing free on vm failure as well > > Fixes: 5e386b574cf7e1 ("drm/radeon: fix missing bo reservation") > Cc: stable@xxxxxxxxxxxxxxx > Cc: Christian König <christian.koenig@xxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Quentin Casasnovas <quentin.casasnovas@xxxxxxxxxx> > Signed-off-by: Christian König <christian.koenig@xxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/radeon/radeon_kms.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c > index 9337820..fb3d13f 100644 > --- a/drivers/gpu/drm/radeon/radeon_kms.c > +++ b/drivers/gpu/drm/radeon/radeon_kms.c > @@ -574,12 +574,17 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv) > } > > r = radeon_vm_init(rdev, &fpriv->vm); > - if (r) > + if (r) { > + kfree(fpriv); > return r; > + } > > r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false); > - if (r) > + if (r) { > + radeon_vm_fini(rdev, &fpriv->vm); > + kfree(fpriv); > return r; > + } > > /* map the ib pool buffer read only into > * virtual address space */ > -- > 1.9.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel