aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys/radeon/drm
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2011-04-08 20:42:03 +0200
committerMarek Olšák <[email protected]>2011-04-08 21:34:16 +0200
commitaac4bae98651c928ce298aecf158b0aa1a7fabce (patch)
tree74bf7a451158d7dc2c6133d08a29ed70446c9662 /src/gallium/winsys/radeon/drm
parentff3d7ce201e6b415eb1254d784f0f425592d556b (diff)
r300g: fix crash when adding a new relocation
No idea why it's so hard to reproduce. Broken with: c35572352e3e92683988ee8d151b47f4190d62f9 Thanks to Toni Spets for assistance.
Diffstat (limited to 'src/gallium/winsys/radeon/drm')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_cs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
index 7576f3ac5fd..f23533622df 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
@@ -265,8 +265,9 @@ static void radeon_add_reloc(struct radeon_cs_context *csc,
}
/* Initialize the new relocation. */
- p_atomic_inc(&bo->num_cs_references);
+ csc->relocs_bo[csc->crelocs] = NULL;
radeon_bo_reference(&csc->relocs_bo[csc->crelocs], bo);
+ p_atomic_inc(&bo->num_cs_references);
reloc = &csc->relocs[csc->crelocs];
reloc->handle = bo->handle;
reloc->read_domains = rd;