Unpinning the pages prior to the object being release from the GPU may
allow the GPU to read and write into system pages (i.e. use after free
by the hw).

Signed-off-by: Chris Wilson <[email protected]>
---
 drivers/gpu/drm/i915/gvt/execlist.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gvt/execlist.c 
b/drivers/gpu/drm/i915/gvt/execlist.c
index cfdd3ae13fb0..b79d148a4e32 100644
--- a/drivers/gpu/drm/i915/gvt/execlist.c
+++ b/drivers/gpu/drm/i915/gvt/execlist.c
@@ -404,7 +404,11 @@ static void prepare_shadow_batch_buffer(struct 
intel_vgpu_workload *workload)
                                gvt_err("Cannot pin\n");
                                return;
                        }
-                       i915_gem_object_unpin_pages(entry_obj->obj);
+
+                       /* FIXME: we are not tracking our pinned VMA leaving it
+                        * up to the core to fix up the stray pin_count upon
+                        * free.
+                        */
 
                        /* update the relocate gma with shadow batch buffer*/
                        set_gma_to_bb_cmd(entry_obj,
@@ -454,7 +458,11 @@ static void prepare_shadow_wa_ctx(struct 
intel_shadow_wa_ctx *wa_ctx)
                gvt_err("Cannot pin indirect ctx obj\n");
                return;
        }
-       i915_gem_object_unpin_pages(wa_ctx->indirect_ctx.obj);
+
+       /* FIXME: we are not tracking our pinned VMA leaving it
+        * up to the core to fix up the stray pin_count upon
+        * free.
+        */
 
        wa_ctx->indirect_ctx.shadow_gma = i915_ggtt_offset(vma);
 
-- 
2.9.3

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to