diff options
author | Marek Olšák <[email protected]> | 2011-04-08 20:42:03 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-04-08 21:34:16 +0200 |
commit | aac4bae98651c928ce298aecf158b0aa1a7fabce (patch) | |
tree | 74bf7a451158d7dc2c6133d08a29ed70446c9662 /src/gallium/winsys/radeon | |
parent | ff3d7ce201e6b415eb1254d784f0f425592d556b (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')
-rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 3 |
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; |