Since we acquire the i915_gem_object_pin_map() to write into the shadow
buffer, we only need to flush the map after writing to ensure the buffer
is coherent.

Signed-off-by: Chris Wilson <[email protected]>
---
 drivers/gpu/drm/i915/gvt/cmd_parser.c | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c 
b/drivers/gpu/drm/i915/gvt/cmd_parser.c
index 3fea967ee817..6b8eb9b92bdd 100644
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -2982,23 +2982,16 @@ static int shadow_indirect_ctx(struct 
intel_shadow_wa_ctx *wa_ctx)
                goto put_obj;
        }
 
-       i915_gem_object_lock(obj, NULL);
-       ret = i915_gem_object_set_to_cpu_domain(obj, false);
-       i915_gem_object_unlock(obj);
-       if (ret) {
-               gvt_vgpu_err("failed to set shadow indirect ctx to CPU\n");
-               goto unmap_src;
-       }
-
        ret = copy_gma_to_hva(workload->vgpu,
-                               workload->vgpu->gtt.ggtt_mm,
-                               guest_gma, guest_gma + ctx_size,
-                               map);
+                             workload->vgpu->gtt.ggtt_mm,
+                             guest_gma, guest_gma + ctx_size,
+                             map);
        if (ret < 0) {
                gvt_vgpu_err("fail to copy guest indirect ctx\n");
                goto unmap_src;
        }
 
+       i915_gem_object_flush_map(obj);
        wa_ctx->indirect_ctx.obj = obj;
        wa_ctx->indirect_ctx.shadow_va = map;
        return 0;
-- 
2.20.1

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

Reply via email to