Hi, I think i found a dead lock in the code: in drm_bo_move.c:drm_buffer_object_transfer the dev->struct_mutex is taken while this mutex is take there is a call to drm_fence.c:drm_fence_reference_unlocked and the function try to acquire dev->struct_mutex lock so deadlock i believe that drm_bo_move.c:drm_buffer_object_transfer should call drm_fence.c:drm_fence_reference_locked and do the rest of drm_fence.c:drm_fence_reference_unlocked by itself.
My fix: replace drm_fence_reference_unlocked(&fbo->fence, bo->fence); by fbo->fence = drm_fence_reference_locked(bo->fence); Is there anythings i am missing ? Btw i see the deadlock in my code anytime i have to move a buffer while i am validating it, i believe you never get through this path on i915 as everythings is ttm so there is no call to move right ? Cheers, Jerome Glisse ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ -- _______________________________________________ Dri-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/dri-devel
