Merge tag 'drm-intel-fixes-2018-11-28' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
Just gvt-fixes-2018-11-26 ""One to correct MOCS registers load on engine list, one for rpm lock warning fix, and another for use-after-free fix for partial ggtt list destroy. " Signed-off-by: Dave Airlie <airlied@redhat.com> From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181128180648.GA17585@jlahtine-desk.ger.corp.intel.com
This commit is contained in:
commit
5c1c86031e
|
@ -61,10 +61,12 @@ static int alloc_gm(struct intel_vgpu *vgpu, bool high_gm)
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_lock(&dev_priv->drm.struct_mutex);
|
mutex_lock(&dev_priv->drm.struct_mutex);
|
||||||
|
mmio_hw_access_pre(dev_priv);
|
||||||
ret = i915_gem_gtt_insert(&dev_priv->ggtt.vm, node,
|
ret = i915_gem_gtt_insert(&dev_priv->ggtt.vm, node,
|
||||||
size, I915_GTT_PAGE_SIZE,
|
size, I915_GTT_PAGE_SIZE,
|
||||||
I915_COLOR_UNEVICTABLE,
|
I915_COLOR_UNEVICTABLE,
|
||||||
start, end, flags);
|
start, end, flags);
|
||||||
|
mmio_hw_access_post(dev_priv);
|
||||||
mutex_unlock(&dev_priv->drm.struct_mutex);
|
mutex_unlock(&dev_priv->drm.struct_mutex);
|
||||||
if (ret)
|
if (ret)
|
||||||
gvt_err("fail to alloc %s gm space from host\n",
|
gvt_err("fail to alloc %s gm space from host\n",
|
||||||
|
|
|
@ -2447,10 +2447,11 @@ static void intel_vgpu_destroy_all_ppgtt_mm(struct intel_vgpu *vgpu)
|
||||||
|
|
||||||
static void intel_vgpu_destroy_ggtt_mm(struct intel_vgpu *vgpu)
|
static void intel_vgpu_destroy_ggtt_mm(struct intel_vgpu *vgpu)
|
||||||
{
|
{
|
||||||
struct intel_gvt_partial_pte *pos;
|
struct intel_gvt_partial_pte *pos, *next;
|
||||||
|
|
||||||
list_for_each_entry(pos,
|
list_for_each_entry_safe(pos, next,
|
||||||
&vgpu->gtt.ggtt_mm->ggtt_mm.partial_pte_list, list) {
|
&vgpu->gtt.ggtt_mm->ggtt_mm.partial_pte_list,
|
||||||
|
list) {
|
||||||
gvt_dbg_mm("partial PTE update on hold 0x%lx : 0x%llx\n",
|
gvt_dbg_mm("partial PTE update on hold 0x%lx : 0x%llx\n",
|
||||||
pos->offset, pos->data);
|
pos->offset, pos->data);
|
||||||
kfree(pos);
|
kfree(pos);
|
||||||
|
|
|
@ -158,6 +158,8 @@ static void load_render_mocs(struct drm_i915_private *dev_priv)
|
||||||
int ring_id, i;
|
int ring_id, i;
|
||||||
|
|
||||||
for (ring_id = 0; ring_id < ARRAY_SIZE(regs); ring_id++) {
|
for (ring_id = 0; ring_id < ARRAY_SIZE(regs); ring_id++) {
|
||||||
|
if (!HAS_ENGINE(dev_priv, ring_id))
|
||||||
|
continue;
|
||||||
offset.reg = regs[ring_id];
|
offset.reg = regs[ring_id];
|
||||||
for (i = 0; i < GEN9_MOCS_SIZE; i++) {
|
for (i = 0; i < GEN9_MOCS_SIZE; i++) {
|
||||||
gen9_render_mocs.control_table[ring_id][i] =
|
gen9_render_mocs.control_table[ring_id][i] =
|
||||||
|
|
Loading…
Reference in New Issue