From e1e8d8cb8857e085ca3d64d6a421c737366925df Mon Sep 17 00:00:00 2001 From: Jacek Konieczny Date: Wed, 14 Nov 2018 20:17:40 +0100 Subject: [PATCH] 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(+) create mode 100644 i915_crash.patch 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)); 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 -- 2.44.0