diff options
Diffstat (limited to 'x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch')
-rw-r--r-- | x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch b/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch deleted file mode 100644 index 0aff822a294a..000000000000 --- a/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 769197c8f16eaf3c0a476a4459e535afd4a939cb Mon Sep 17 00:00:00 2001 -From: Xiang, Haihao <haihao.xiang@intel.com> -Date: Thu, 16 Oct 2008 10:37:30 +0800 -Subject: [PATCH] intel: avoid deadlock in intel_bufmgr_fake. - ---- - libdrm/intel/intel_bufmgr_fake.c | 12 ++++++------ - 1 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/libdrm/intel/intel_bufmgr_fake.c b/libdrm/intel/intel_bufmgr_fake.c -index 8e476c4..c82ce5a 100644 ---- a/libdrm/intel/intel_bufmgr_fake.c -+++ b/libdrm/intel/intel_bufmgr_fake.c -@@ -1053,12 +1053,10 @@ dri_fake_bo_unmap(dri_bo *bo) - } - - static void --dri_fake_kick_all(dri_bufmgr_fake *bufmgr_fake) -+dri_fake_kick_all_locked(dri_bufmgr_fake *bufmgr_fake) - { - struct block *block, *tmp; - -- pthread_mutex_lock(&bufmgr_fake->lock); -- - bufmgr_fake->performed_rendering = 0; - /* okay for ever BO that is on the HW kick it off. - seriously not afraid of the POLICE right now */ -@@ -1073,7 +1071,6 @@ dri_fake_kick_all(dri_bufmgr_fake *bufmgr_fake) - bo_fake->dirty = 1; - } - -- pthread_mutex_unlock(&bufmgr_fake->lock); - } - - static int -@@ -1358,7 +1355,7 @@ dri_fake_bo_exec(dri_bo *bo, int used, - if (bufmgr_fake->fail == 1) { - if (retry_count == 0) { - retry_count++; -- dri_fake_kick_all(bufmgr_fake); -+ dri_fake_kick_all_locked(bufmgr_fake); - bufmgr_fake->fail = 0; - goto restart; - } else /* dump out the memory here */ -@@ -1369,8 +1366,10 @@ dri_fake_bo_exec(dri_bo *bo, int used, - - if (bufmgr_fake->exec != NULL) { - int ret = bufmgr_fake->exec(bo, used, bufmgr_fake->exec_priv); -- if (ret != 0) -+ if (ret != 0) { -+ pthread_mutex_unlock(&bufmgr_fake->lock); - return ret; -+ } - } else { - batch.start = bo->offset; - batch.used = used; -@@ -1382,6 +1381,7 @@ dri_fake_bo_exec(dri_bo *bo, int used, - if (drmCommandWrite(bufmgr_fake->fd, DRM_I915_BATCHBUFFER, &batch, - sizeof(batch))) { - drmMsg("DRM_I915_BATCHBUFFER: %d\n", -errno); -+ pthread_mutex_unlock(&bufmgr_fake->lock); - return -errno; - } - } --- -1.6.0.2 - |