radeon: Add protection against recursive DRM locking.
[mesa.git] / src / mesa / drivers / dri / radeon / radeon_lock.h
index 2817709eed6a3a8f8c2456bfa9948445230668be..da5a5b43715d0d231e0021f3fa96aa1aefc91c5e 100644 (file)
@@ -48,12 +48,22 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 extern void radeonGetLock(radeonContextPtr rmesa, GLuint flags);
 
-void radeon_lock_hardware(radeonContextPtr rmesa);
+void radeon_lock_hardware(radeonContextPtr rmesa
+#ifndef NDEBUG
+               ,const char* function
+               ,const char* file
+               ,const int line
+#endif
+               );
 void radeon_unlock_hardware(radeonContextPtr rmesa);
 
 /* Lock the hardware and validate our state.
  */
+#ifdef NDEBUG
 #define LOCK_HARDWARE( rmesa ) radeon_lock_hardware(rmesa)
+#else
+#define LOCK_HARDWARE( rmesa ) radeon_lock_hardware(rmesa, __FUNCTION__, __FILE__, __LINE__)
+#endif
 #define UNLOCK_HARDWARE( rmesa )  radeon_unlock_hardware(rmesa)
 
 #endif