Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-commits
Navigation:
Lists: gentoo-commits: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-commits@g.o
From: "Remi Cardona (remi)" <remi@g.o>
Subject: gentoo-x86 commit in x11-libs/libdrm/files: 2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch 2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
Date: Sun, 19 Oct 2008 21:36:06 +0000
remi        08/10/19 21:36:06

  Added:               
                        2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch
                        2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
  Log:
  x11-libs/libdrm: bump to 2.4.0 (under p.mask, some drivers are broken, see bug #242698)
  (Portage version: 2.2_rc12/cvs/Linux 2.6.26-gentoo-r1 i686)

Revision  Changes    Path
1.1                  x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch?rev=1.1&content-type=text/plain

Index: 2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch
===================================================================
From 769197c8f16eaf3c0a476a4459e535afd4a939cb Mon Sep 17 00:00:00 2001
From: Xiang, Haihao <haihao.xiang@...>
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




1.1                  x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch?rev=1.1&content-type=text/plain

Index: 2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
===================================================================
From a59ea02ff839fa0801763a90beb8b232b933c746 Mon Sep 17 00:00:00 2001
From: Keith Packard <keithp@...>
Date: Thu, 16 Oct 2008 21:15:01 -0700
Subject: [PATCH] intel: ioctl is not defined to return -errno

Don't count on ioctl returning -errno; use errno directly.

Signed-off-by: Keith Packard <keithp@...>
Signed-off-by: Eric Anholt <eric@...>
---
 libdrm/intel/intel_bufmgr_gem.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
index 33853c4..081eb2a 100644
--- a/libdrm/intel/intel_bufmgr_gem.c
+++ b/libdrm/intel/intel_bufmgr_gem.c
@@ -790,7 +790,7 @@ dri_gem_bo_exec(dri_bo *bo, int used,
 
     do {
 	ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_EXECBUFFER, &execbuf);
-    } while (ret == -EAGAIN);
+    } while (ret != 0 && errno == EAGAIN);
 
     intel_update_buffer_offsets (bufmgr_gem);
 
-- 
1.6.0.2






Navigation:
Lists: gentoo-commits: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
gentoo-x86 commit in media-gfx/blender: ChangeLog blender-2.48-r1.ebuild
Next by thread:
gentoo-x86 commit in x11-libs/libdrm: ChangeLog libdrm-2.4.0.ebuild
Previous by date:
gentoo-x86 commit in media-gfx/blender: ChangeLog blender-2.48-r1.ebuild
Next by date:
gentoo-x86 commit in x11-libs/libdrm: ChangeLog libdrm-2.4.0.ebuild


Updated Jun 10, 2012

Summary: Archive of the gentoo-commits mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.