[packages/kernel/LINUX_4_14] i915_crash.patch added
jajcus
jajcus at pld-linux.org
Wed Nov 14 22:37:31 CET 2018
commit e1e8d8cb8857e085ca3d64d6a421c737366925df
Author: Jacek Konieczny <jajcus at jajcus.net>
Date: Wed Nov 14 20:17:40 2018 +0100
i915_crash.patch added
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=104773
"GPF in i915 call to gen8_ppgtt_alloc_pdp causes laptop to hang"
i915_crash.patch | 42 ++++++++++++++++++++++++++++++++++++++++++
kernel.spec | 5 +++++
2 files changed, 47 insertions(+)
---
diff --git a/kernel.spec b/kernel.spec
index 79f6027d..955cbc62 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -150,6 +150,9 @@ Source55: kernel-imq.config
Source58: kernel-inittmpfs.config
+# https://bugs.freedesktop.org/show_bug.cgi?id=104773
+Patch2: i915_crash.patch
+
# http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
Patch3: kernel-fbcondecor.patch
Patch6: linux-wistron-nx.patch
@@ -624,6 +627,8 @@ cd linux-%{basever}
%if %{without vanilla}
+%patch2 -p1
+
%if %{with fbcondecor}
%patch3 -p1
%endif
diff --git a/i915_crash.patch b/i915_crash.patch
new file mode 100644
index 00000000..7fc60ad3
--- /dev/null
+++ b/i915_crash.patch
@@ -0,0 +1,42 @@
+diff -dur -x '*~' -x '*.orig' -x '*.rej' linux-4.14.orig/drivers/gpu/drm/i915/i915_gem_gtt.c linux-4.14/drivers/gpu/drm/i915/i915_gem_gtt.c
+--- linux-4.14.orig/drivers/gpu/drm/i915/i915_gem_gtt.c 2017-11-12 19:46:13.000000000 +0100
++++ linux-4.14/drivers/gpu/drm/i915/i915_gem_gtt.c 2018-11-14 20:15:43.380387823 +0100
+@@ -1099,14 +1099,17 @@
+
+ gen8_for_each_pde(pt, pd, start, length, pde) {
+ if (pt == vm->scratch_pt) {
++ pd->used_pdes++;
++
+ pt = alloc_pt(vm);
+- if (IS_ERR(pt))
++ if (IS_ERR(pt)) {
++ pd->used_pdes--;
+ goto unwind;
++ }
+
+ gen8_initialize_pt(vm, pt);
+
+ gen8_ppgtt_set_pde(vm, pd, pt, pde);
+- pd->used_pdes++;
+ GEM_BUG_ON(pd->used_pdes > I915_PDES);
+ }
+
+@@ -1130,13 +1133,16 @@
+
+ gen8_for_each_pdpe(pd, pdp, start, length, pdpe) {
+ if (pd == vm->scratch_pd) {
++ pdp->used_pdpes++;
++
+ pd = alloc_pd(vm);
+- if (IS_ERR(pd))
++ if (IS_ERR(pd)) {
++ pdp->used_pdpes--;
+ goto unwind;
++ }
+
+ gen8_initialize_pd(vm, pd);
+ gen8_ppgtt_set_pdpe(vm, pdp, pd, pdpe);
+- pdp->used_pdpes++;
+ GEM_BUG_ON(pdp->used_pdpes > i915_pdpes_per_pdp(vm));
+
+ mark_tlbs_dirty(i915_vm_to_ppgtt(vm));
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/e1e8d8cb8857e085ca3d64d6a421c737366925df
More information about the pld-cvs-commit
mailing list