From ea7b4fdc225ebbbfd77f875fd3bfcfbdcfa9a1f7 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 20 Oct 2003 05:09:21 +0000 Subject: Fix the possibility of sleeping with locks held in sysctls by copying the data into temporary variables with the lock held then outputting to sysctls with the lock released. Rearranged a little extra code to aid this. Note that drm_memory_debug.h hasn't had this fix applied, but I consider that code to be just about dead anyway. --- bsd/drm_memory_debug.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'bsd/drm_memory_debug.h') diff --git a/bsd/drm_memory_debug.h b/bsd/drm_memory_debug.h index c4bad089..d211b76b 100644 --- a/bsd/drm_memory_debug.h +++ b/bsd/drm_memory_debug.h @@ -32,6 +32,14 @@ #include "drmP.h" +#define DRM_SYSCTL_PRINT(fmt, arg...) \ +do { \ + snprintf(buf, sizeof(buf), fmt, ##arg); \ + error = SYSCTL_OUT(req, buf, strlen(buf)); \ + if (error) \ + return error; \ +} while (0) + typedef struct drm_mem_stats { const char *name; int succeed_count; -- cgit v1.2.3