]>
Commit | Line | Data |
---|---|---|
e1e8d8cb JK |
1 | 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 |
2 | --- linux-4.14.orig/drivers/gpu/drm/i915/i915_gem_gtt.c 2017-11-12 19:46:13.000000000 +0100 | |
3 | +++ linux-4.14/drivers/gpu/drm/i915/i915_gem_gtt.c 2018-11-14 20:15:43.380387823 +0100 | |
4 | @@ -1099,14 +1099,17 @@ | |
5 | ||
6 | gen8_for_each_pde(pt, pd, start, length, pde) { | |
7 | if (pt == vm->scratch_pt) { | |
8 | + pd->used_pdes++; | |
9 | + | |
10 | pt = alloc_pt(vm); | |
11 | - if (IS_ERR(pt)) | |
12 | + if (IS_ERR(pt)) { | |
13 | + pd->used_pdes--; | |
14 | goto unwind; | |
15 | + } | |
16 | ||
17 | gen8_initialize_pt(vm, pt); | |
18 | ||
19 | gen8_ppgtt_set_pde(vm, pd, pt, pde); | |
20 | - pd->used_pdes++; | |
21 | GEM_BUG_ON(pd->used_pdes > I915_PDES); | |
22 | } | |
23 | ||
24 | @@ -1130,13 +1133,16 @@ | |
25 | ||
26 | gen8_for_each_pdpe(pd, pdp, start, length, pdpe) { | |
27 | if (pd == vm->scratch_pd) { | |
28 | + pdp->used_pdpes++; | |
29 | + | |
30 | pd = alloc_pd(vm); | |
31 | - if (IS_ERR(pd)) | |
32 | + if (IS_ERR(pd)) { | |
33 | + pdp->used_pdpes--; | |
34 | goto unwind; | |
35 | + } | |
36 | ||
37 | gen8_initialize_pd(vm, pd); | |
38 | gen8_ppgtt_set_pdpe(vm, pdp, pd, pdpe); | |
39 | - pdp->used_pdpes++; | |
40 | GEM_BUG_ON(pdp->used_pdpes > i915_pdpes_per_pdp(vm)); | |
41 | ||
42 | mark_tlbs_dirty(i915_vm_to_ppgtt(vm)); |