Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'gvt-fixes-2018-11-26' of https://github.com/intel/gvt-linux into drm-intel-fixes

gvt-fixes-2018-11-26

- Fix engine check for correct MOCS regs load (Xinyun)
- Fix rpm locking for vGPU ggtt init (Henry)
- Fix use-after-free when destroy partial ggtt entries (Chris)

Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
From: Zhenyu Wang <zhenyuw@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181126021820.GL12743@zhen-hp.sh.intel.com

+8 -3
+2
drivers/gpu/drm/i915/gvt/aperture_gm.c
··· 61 61 } 62 62 63 63 mutex_lock(&dev_priv->drm.struct_mutex); 64 + mmio_hw_access_pre(dev_priv); 64 65 ret = i915_gem_gtt_insert(&dev_priv->ggtt.vm, node, 65 66 size, I915_GTT_PAGE_SIZE, 66 67 I915_COLOR_UNEVICTABLE, 67 68 start, end, flags); 69 + mmio_hw_access_post(dev_priv); 68 70 mutex_unlock(&dev_priv->drm.struct_mutex); 69 71 if (ret) 70 72 gvt_err("fail to alloc %s gm space from host\n",
+4 -3
drivers/gpu/drm/i915/gvt/gtt.c
··· 2447 2447 2448 2448 static void intel_vgpu_destroy_ggtt_mm(struct intel_vgpu *vgpu) 2449 2449 { 2450 - struct intel_gvt_partial_pte *pos; 2450 + struct intel_gvt_partial_pte *pos, *next; 2451 2451 2452 - list_for_each_entry(pos, 2453 - &vgpu->gtt.ggtt_mm->ggtt_mm.partial_pte_list, list) { 2452 + list_for_each_entry_safe(pos, next, 2453 + &vgpu->gtt.ggtt_mm->ggtt_mm.partial_pte_list, 2454 + list) { 2454 2455 gvt_dbg_mm("partial PTE update on hold 0x%lx : 0x%llx\n", 2455 2456 pos->offset, pos->data); 2456 2457 kfree(pos);
+2
drivers/gpu/drm/i915/gvt/mmio_context.c
··· 158 158 int ring_id, i; 159 159 160 160 for (ring_id = 0; ring_id < ARRAY_SIZE(regs); ring_id++) { 161 + if (!HAS_ENGINE(dev_priv, ring_id)) 162 + continue; 161 163 offset.reg = regs[ring_id]; 162 164 for (i = 0; i < GEN9_MOCS_SIZE; i++) { 163 165 gen9_render_mocs.control_table[ring_id][i] =