radeon_bo_destroy() will want to read the list field. Without this patch,
we'd end up evaluating the list pointers before they have been properly
set up when we destroyed the newly created bo if it cannot be mapped.

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

diff --git a/src/gallium/winsys/r600/drm/radeon_bo.c 
b/src/gallium/winsys/r600/drm/radeon_bo.c
index 9d664b7..2d08686 100644
--- a/src/gallium/winsys/r600/drm/radeon_bo.c
+++ b/src/gallium/winsys/r600/drm/radeon_bo.c
@@ -82,6 +82,7 @@ struct radeon_bo *radeon_bo(struct radeon *radeon, unsigned 
handle,
        bo->handle = handle;
        pipe_reference_init(&bo->reference, 1);
        bo->alignment = alignment;
+       LIST_INITHEAD(&bo->fencedlist);
 
        if (handle) {
                struct drm_gem_open open_arg;
@@ -123,7 +124,6 @@ struct radeon_bo *radeon_bo(struct radeon *radeon, unsigned 
handle,
        if (ptr) {
                memcpy(bo->data, ptr, size);
        }
-       LIST_INITHEAD(&bo->fencedlist);
        return bo;
 }
 
-- 
1.7.3.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to