Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1220100
| From | Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH] drm/mgag200: fix memory leak |
| Date | 2015-09-07 14:00 +0200 |
| Message-ID | <q63fA-4Fg-7@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
If drm_fb_helper_alloc_fbi() fails then we were directly returning
without freeing sysram. Also if drm_fb_helper_alloc_fbi() succeeds but
mgag200_framebuffer_init() fails then we were not releasing sysram and
we were not releasing fbi helper also.
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
---
drivers/gpu/drm/mgag200/mgag200_fb.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/mgag200/mgag200_fb.c b/drivers/gpu/drm/mgag200/mgag200_fb.c
index 87de15e..5fe476a 100644
--- a/drivers/gpu/drm/mgag200/mgag200_fb.c
+++ b/drivers/gpu/drm/mgag200/mgag200_fb.c
@@ -189,14 +189,16 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
return -ENOMEM;
info = drm_fb_helper_alloc_fbi(helper);
- if (IS_ERR(info))
- return PTR_ERR(info);
+ if (IS_ERR(info)) {
+ ret = PTR_ERR(info);
+ goto err_alloc_fbi;
+ }
info->par = mfbdev;
ret = mgag200_framebuffer_init(dev, &mfbdev->mfb, &mode_cmd, gobj);
if (ret)
- return ret;
+ goto err_framebuffer_init;
mfbdev->sysram = sysram;
mfbdev->size = size;
@@ -226,6 +228,13 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
DRM_DEBUG_KMS("allocated %dx%d\n",
fb->width, fb->height);
return 0;
+
+err_framebuffer_init:
+ drm_fb_helper_release_fbi(helper);
+
+err_alloc_fbi:
+ vfree(sysram);
+ return ret;
}
static int mga_fbdev_destroy(struct drm_device *dev,
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH] drm/mgag200: fix memory leak Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-07 14:00 +0200
Re: [PATCH] drm/mgag200: fix memory leak Ingo Molnar <mingo@kernel.org> - 2015-09-13 11:40 +0200
Re: [PATCH] drm/mgag200: fix memory leak Dave Airlie <airlied@gmail.com> - 2015-09-14 12:10 +0200
Re: [PATCH] drm/mgag200: fix memory leak Dave Airlie <airlied@gmail.com> - 2015-09-14 12:10 +0200
Re: [PATCH] drm/mgag200: fix memory leak Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-14 12:40 +0200
Re: [PATCH] drm/mgag200: fix memory leak Archit Taneja <architt@codeaurora.org> - 2015-09-14 17:30 +0200
[PATCH] drm/mgag200: Fix calling drm_fb_helper_fini() twice Ingo Molnar <mingo@kernel.org> - 2015-09-16 11:50 +0200
Re: [PATCH] drm/mgag200: Fix calling drm_fb_helper_fini() twice Archit Taneja <architt@codeaurora.org> - 2015-09-17 13:00 +0200
Re: [PATCH] drm/mgag200: Fix calling drm_fb_helper_fini() twice Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-17 13:20 +0200
csiph-web