Gentoo Archives: gentoo-commits

From: "Remi Cardona (remi)" <remi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] 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:09
Message-Id: E1KrfwU-0007NS-QR@stork.gentoo.org
1 remi 08/10/19 21:36:06
2
3 Added:
4 2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch
5 2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
6 Log:
7 x11-libs/libdrm: bump to 2.4.0 (under p.mask, some drivers are broken, see bug #242698)
8 (Portage version: 2.2_rc12/cvs/Linux 2.6.26-gentoo-r1 i686)
9
10 Revision Changes Path
11 1.1 x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch
12
13 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
14 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
15
16 Index: 2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch
17 ===================================================================
18 From 769197c8f16eaf3c0a476a4459e535afd4a939cb Mon Sep 17 00:00:00 2001
19 From: Xiang, Haihao <haihao.xiang@×××××.com>
20 Date: Thu, 16 Oct 2008 10:37:30 +0800
21 Subject: [PATCH] intel: avoid deadlock in intel_bufmgr_fake.
22
23 ---
24 libdrm/intel/intel_bufmgr_fake.c | 12 ++++++------
25 1 files changed, 6 insertions(+), 6 deletions(-)
26
27 diff --git a/libdrm/intel/intel_bufmgr_fake.c b/libdrm/intel/intel_bufmgr_fake.c
28 index 8e476c4..c82ce5a 100644
29 --- a/libdrm/intel/intel_bufmgr_fake.c
30 +++ b/libdrm/intel/intel_bufmgr_fake.c
31 @@ -1053,12 +1053,10 @@ dri_fake_bo_unmap(dri_bo *bo)
32 }
33
34 static void
35 -dri_fake_kick_all(dri_bufmgr_fake *bufmgr_fake)
36 +dri_fake_kick_all_locked(dri_bufmgr_fake *bufmgr_fake)
37 {
38 struct block *block, *tmp;
39
40 - pthread_mutex_lock(&bufmgr_fake->lock);
41 -
42 bufmgr_fake->performed_rendering = 0;
43 /* okay for ever BO that is on the HW kick it off.
44 seriously not afraid of the POLICE right now */
45 @@ -1073,7 +1071,6 @@ dri_fake_kick_all(dri_bufmgr_fake *bufmgr_fake)
46 bo_fake->dirty = 1;
47 }
48
49 - pthread_mutex_unlock(&bufmgr_fake->lock);
50 }
51
52 static int
53 @@ -1358,7 +1355,7 @@ dri_fake_bo_exec(dri_bo *bo, int used,
54 if (bufmgr_fake->fail == 1) {
55 if (retry_count == 0) {
56 retry_count++;
57 - dri_fake_kick_all(bufmgr_fake);
58 + dri_fake_kick_all_locked(bufmgr_fake);
59 bufmgr_fake->fail = 0;
60 goto restart;
61 } else /* dump out the memory here */
62 @@ -1369,8 +1366,10 @@ dri_fake_bo_exec(dri_bo *bo, int used,
63
64 if (bufmgr_fake->exec != NULL) {
65 int ret = bufmgr_fake->exec(bo, used, bufmgr_fake->exec_priv);
66 - if (ret != 0)
67 + if (ret != 0) {
68 + pthread_mutex_unlock(&bufmgr_fake->lock);
69 return ret;
70 + }
71 } else {
72 batch.start = bo->offset;
73 batch.used = used;
74 @@ -1382,6 +1381,7 @@ dri_fake_bo_exec(dri_bo *bo, int used,
75 if (drmCommandWrite(bufmgr_fake->fd, DRM_I915_BATCHBUFFER, &batch,
76 sizeof(batch))) {
77 drmMsg("DRM_I915_BATCHBUFFER: %d\n", -errno);
78 + pthread_mutex_unlock(&bufmgr_fake->lock);
79 return -errno;
80 }
81 }
82 --
83 1.6.0.2
84
85
86
87
88 1.1 x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
89
90 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
91 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
92
93 Index: 2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
94 ===================================================================
95 From a59ea02ff839fa0801763a90beb8b232b933c746 Mon Sep 17 00:00:00 2001
96 From: Keith Packard <keithp@××××××.com>
97 Date: Thu, 16 Oct 2008 21:15:01 -0700
98 Subject: [PATCH] intel: ioctl is not defined to return -errno
99
100 Don't count on ioctl returning -errno; use errno directly.
101
102 Signed-off-by: Keith Packard <keithp@××××××.com>
103 Signed-off-by: Eric Anholt <eric@××××××.net>
104 ---
105 libdrm/intel/intel_bufmgr_gem.c | 2 +-
106 1 files changed, 1 insertions(+), 1 deletions(-)
107
108 diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
109 index 33853c4..081eb2a 100644
110 --- a/libdrm/intel/intel_bufmgr_gem.c
111 +++ b/libdrm/intel/intel_bufmgr_gem.c
112 @@ -790,7 +790,7 @@ dri_gem_bo_exec(dri_bo *bo, int used,
113
114 do {
115 ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_EXECBUFFER, &execbuf);
116 - } while (ret == -EAGAIN);
117 + } while (ret != 0 && errno == EAGAIN);
118
119 intel_update_buffer_offsets (bufmgr_gem);
120
121 --
122 1.6.0.2