[arch-commits] Commit in linux/repos/core-x86_64 (3 files)

Tobias Powalowski tpowa at archlinux.org
Fri Jan 13 16:33:40 UTC 2012


    Date: Friday, January 13, 2012 @ 11:33:39
  Author: tpowa
Revision: 146565

bump to 3.1.9, added i915-gpu patch

Added:
  linux/repos/core-x86_64/i915-gpu-finish.patch
Modified:
  linux/repos/core-x86_64/PKGBUILD
  linux/repos/core-x86_64/linux.install

-----------------------+
 PKGBUILD              |   14 ++++++++----
 i915-gpu-finish.patch |   55 ++++++++++++++++++++++++++++++++++++++++++++++++
 linux.install         |    3 --
 3 files changed, 66 insertions(+), 6 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-01-13 16:33:23 UTC (rev 146564)
+++ PKGBUILD	2012-01-13 16:33:39 UTC (rev 146565)
@@ -7,7 +7,7 @@
 # pkgname=linux-custom       # Build kernel with a different name
 _kernelname=${pkgname#linux}
 _basekernel=3.1
-pkgver=${_basekernel}.8
+pkgver=${_basekernel}.9
 pkgrel=1
 arch=('i686' 'x86_64')
 url="http://www.kernel.org/"
@@ -22,15 +22,17 @@
         "${pkgname}.preset"
         'change-default-console-loglevel.patch'
         'i915-fix-ghost-tv-output.patch'
-        'i915-fix-incorrect-error-message.patch')
+        'i915-fix-incorrect-error-message.patch'
+        'i915-gpu-finish.patch')
 md5sums=('edbdc798f23ae0f8045c82f6fa22c536'
-         '503acb7689ec96446f5774d6c86c1207'
+         '61494c09959f4185f703bfd68c7fb970'
          'f7b6cd7fb0a7ecc3840a59ce6e8cb9f3'
          '73d256a815013286fd02536d541e7b2f'
          'eb14dcfd80c00852ef81ded6e826826a'
          '9d3c56a4b999c8bfbd4018089a62f662'
          '263725f20c0b9eb9c353040792d644e5'
-         'a50c9076012cb2dda49952dc6ec3e9c1')
+         'a50c9076012cb2dda49952dc6ec3e9c1'
+         '4cd79aa147825837dc8bc9f6b736c0a0')
 
 build() {
   cd "${srcdir}/linux-${_basekernel}"
@@ -41,6 +43,10 @@
   # add latest fixes from stable queue, if needed
   # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
 
+  # fix FS#27883
+  # drm/i915: Only clear the GPU domains upon a successful finish
+  patch -Np1 -i "${srcdir}/i915-gpu-finish.patch"
+
   # Some chips detect a ghost TV output
   # mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
   # Arch Linux bug report: FS#19234

Added: i915-gpu-finish.patch
===================================================================
--- i915-gpu-finish.patch	                        (rev 0)
+++ i915-gpu-finish.patch	2012-01-13 16:33:39 UTC (rev 146565)
@@ -0,0 +1,55 @@
+commit 389a55581e30607af0fcde6cdb4e54f189cf46cf
+Author: Chris Wilson <chris at chris-wilson.co.uk>
+Date:   Tue Nov 29 15:12:16 2011 +0000
+
+    drm/i915: Only clear the GPU domains upon a successful finish
+    
+    By clearing the GPU read domains before waiting upon the buffer, we run
+    the risk of the wait being interrupted and the domains prematurely
+    cleared. The next time we attempt to wait upon the buffer (after
+    userspace handles the signal), we believe that the buffer is idle and so
+    skip the wait.
+    
+    There are a number of bugs across all generations which show signs of an
+    overly haste reuse of active buffers.
+    
+    Such as:
+    
+      https://bugs.freedesktop.org/show_bug.cgi?id=29046
+      https://bugs.freedesktop.org/show_bug.cgi?id=35863
+      https://bugs.freedesktop.org/show_bug.cgi?id=38952
+      https://bugs.freedesktop.org/show_bug.cgi?id=40282
+      https://bugs.freedesktop.org/show_bug.cgi?id=41098
+      https://bugs.freedesktop.org/show_bug.cgi?id=41102
+      https://bugs.freedesktop.org/show_bug.cgi?id=41284
+      https://bugs.freedesktop.org/show_bug.cgi?id=42141
+    
+    A couple of those pre-date i915_gem_object_finish_gpu(), so may be
+    unrelated (such as a wild write from a userspace command buffer), but
+    this does look like a convincing cause for most of those bugs.
+    
+    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+    Cc: stable at kernel.org
+    Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
+    Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
+
+diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
+index d560175..036bc58 100644
+--- a/drivers/gpu/drm/i915/i915_gem.c
++++ b/drivers/gpu/drm/i915/i915_gem.c
+@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj)
+ 			return ret;
+ 	}
+ 
++	ret = i915_gem_object_wait_rendering(obj);
++	if (ret)
++		return ret;
++
+ 	/* Ensure that we invalidate the GPU's caches and TLBs. */
+ 	obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
+-
+-	return i915_gem_object_wait_rendering(obj);
++	return 0;
+ }
+ 
+ /**

Modified: linux.install
===================================================================
--- linux.install	2012-01-13 16:33:23 UTC (rev 146564)
+++ linux.install	2012-01-13 16:33:39 UTC (rev 146565)
@@ -2,7 +2,7 @@
 # arg 2:  the old package version
 
 KERNEL_NAME=
-KERNEL_VERSION=3.1.8-1-ARCH
+KERNEL_VERSION=3.1.9-1-ARCH
 
 post_install () {
   # updating module dependencies
@@ -46,7 +46,6 @@
 
   if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
     echo "WARNING: /boot appears to be a separate partition but is not mounted."
-    echo "         You probably just broke your system. Congratulations."
   fi
 
   # updating module dependencies




More information about the arch-commits mailing list