radeon: Add protection against recursive DRM locking.
authorPauli Nieminen <suokkos@gmail.com>
Thu, 30 Jul 2009 17:17:29 +0000 (20:17 +0300)
committerAlex Deucher <alexdeucher@gmail.com>
Wed, 12 Aug 2009 18:14:29 +0000 (14:14 -0400)
commit29173d3d5cf02d58e720b5c7fe48a0630c7d5d5f
treeafaf64a351d5f451de6e9cd12191c25079888f38
parent5eeb44f3983dfda2f2707783be12806da795cbcd
radeon: Add protection against recursive DRM locking.

Reference counting protects DRM lock call from recursive locking that would
cause hang. Code also adds optional debugging output for recursive call that
is compiled only if NDEBUG is not defined.

This code is not 100% thread safe because mesa doesn't include increment and
test atomic operation. There is built-in gcc functions but they are only
available from gcc 4.2.
src/mesa/drivers/dri/radeon/radeon_common_context.c
src/mesa/drivers/dri/radeon/radeon_common_context.h
src/mesa/drivers/dri/radeon/radeon_lock.c
src/mesa/drivers/dri/radeon/radeon_lock.h