Message ID | alpine.LNX.2.00.1107031321150.18279@swampdragon.chaosbits.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Jul 4, 2011 at 12:39 AM, Marcin Slusarz <marcin.slusarz@gmail.com> wrote: > On Sun, Jul 03, 2011 at 01:21:55PM +0200, Jesper Juhl wrote: >> From: Jesper Juhl <jj@chaosbits.net> >> Subject: [PATCH] nouveau: Do not leak in nv20_graph_create >> >> If we return due to an unknown chipset in drivers/gpu/drm/nouveau/nv20_graph.c:nv20_graph_create() we'll leak the memory allocated to 'pgraph'. >> >> This patch should fix the leak and it also disambiguates the "PGRAPH: >> unknown chipset\n" error message - it's nice to be able to tell which >> branch created the error which is impossible if the error messages are >> 100% identical. > > There's no need to change these strings. Nouveau prints chipset id earlier. > For patch with only kfrees: > Reviewed-by: Marcin Slusarz <marcin.slusarz@gmail.com> Agreed, I've pulled just the kfree()s into my tree. They'll hit nouveau git either today or tomorrow. Thank you! Ben. > >> Signed-off-by: Jesper Juhl <jj@chaosbits.net> >> --- >> drivers/gpu/drm/nouveau/nv20_graph.c | 4 +++- >> 1 files changed, 3 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/gpu/drm/nouveau/nv20_graph.c b/drivers/gpu/drm/nouveau/nv20_graph.c >> index affc7d7..53cbe84 100644 >> --- a/drivers/gpu/drm/nouveau/nv20_graph.c >> +++ b/drivers/gpu/drm/nouveau/nv20_graph.c >> @@ -752,6 +752,7 @@ nv20_graph_create(struct drm_device *dev) >> pgraph->grctx_user = 0x0000; >> break; >> default: >> + kfree(pgraph); >> NV_ERROR(dev, "PGRAPH: unknown chipset\n"); >> return 0; >> } >> @@ -773,7 +774,8 @@ nv20_graph_create(struct drm_device *dev) >> pgraph->grctx_size = NV35_36_GRCTX_SIZE; >> break; >> default: >> - NV_ERROR(dev, "PGRAPH: unknown chipset\n"); >> + kfree(pgraph); >> + NV_ERROR(dev, "PGRAPH: chipset unknown.\n"); >> return 0; >> } >> } >> -- > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel >
diff --git a/drivers/gpu/drm/nouveau/nv20_graph.c b/drivers/gpu/drm/nouveau/nv20_graph.c index affc7d7..53cbe84 100644 --- a/drivers/gpu/drm/nouveau/nv20_graph.c +++ b/drivers/gpu/drm/nouveau/nv20_graph.c @@ -752,6 +752,7 @@ nv20_graph_create(struct drm_device *dev) pgraph->grctx_user = 0x0000; break; default: + kfree(pgraph); NV_ERROR(dev, "PGRAPH: unknown chipset\n"); return 0; } @@ -773,7 +774,8 @@ nv20_graph_create(struct drm_device *dev) pgraph->grctx_size = NV35_36_GRCTX_SIZE; break; default: - NV_ERROR(dev, "PGRAPH: unknown chipset\n"); + kfree(pgraph); + NV_ERROR(dev, "PGRAPH: chipset unknown.\n"); return 0; } }