[Mesa-dev] [PATCH] r600g: Fixed a bo leak in the error path of radeon_ctx_set_bo_new().

Tilman Sauerbeck tilman at code-monkey.de
Thu Sep 9 06:01:21 PDT 2010


Signed-off-by: Tilman Sauerbeck <tilman at code-monkey.de>
---
 src/gallium/winsys/r600/drm/radeon_ctx.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/src/gallium/winsys/r600/drm/radeon_ctx.c b/src/gallium/winsys/r600/drm/radeon_ctx.c
index 5d9cdca..f89ab30 100644
--- a/src/gallium/winsys/r600/drm/radeon_ctx.c
+++ b/src/gallium/winsys/r600/drm/radeon_ctx.c
@@ -34,7 +34,7 @@ static int radeon_ctx_set_bo_new(struct radeon_ctx *ctx, struct radeon_bo *bo)
 {
 	if (ctx->nbo >= RADEON_CTX_MAX_PM4)
 		return -EBUSY;
-	ctx->bo[ctx->nbo] = bo;
+	ctx->bo[ctx->nbo] = radeon_bo_incref(ctx->radeon, bo);
 	ctx->nbo++;
 	return 0;
 }
@@ -137,7 +137,6 @@ static int radeon_ctx_state_bo(struct radeon_ctx *ctx, struct radeon_state *stat
 				break;
 		}
 		if (j == ctx->nbo) {
-			radeon_bo_incref(ctx->radeon, state->bo[i]);
 			r = radeon_ctx_set_bo_new(ctx, state->bo[i]);
 			if (r)
 				return r;
-- 
1.7.2.1



More information about the mesa-dev mailing list