From e9e5380f22c230ea1276208baa40c3fe6482b296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 19 Feb 2011 00:06:52 +0100 Subject: [PATCH] r300g: fix invalid dereference in winsys radeon_bo_unref may destroy the buffer, so call it after p_atomic_dec, not before. --- src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c index 8f6f4a1f35a..a38b01048b2 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c @@ -110,8 +110,8 @@ static void radeon_cs_context_cleanup(struct radeon_cs_context *csc) unsigned i; for (i = 0; i < csc->crelocs; i++) { - radeon_bo_unref(csc->relocs_bo[i]); p_atomic_dec(&csc->relocs_bo[i]->num_cs_references); + radeon_bo_unref(csc->relocs_bo[i]); csc->relocs_bo[i] = NULL; }