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

Reply via email to