aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/gvt/scheduler.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index dd8f8cc69a76..907e6bc794f6 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -203,9 +203,12 @@ static int dispatch_workload(struct intel_vgpu_workload *workload)
203 if (ret) 203 if (ret)
204 goto out; 204 goto out;
205 205
206 ret = intel_gvt_scan_and_shadow_wa_ctx(&workload->wa_ctx); 206 if ((workload->ring_id == RCS) &&
207 if (ret) 207 (workload->wa_ctx.indirect_ctx.size != 0)) {
208 goto out; 208 ret = intel_gvt_scan_and_shadow_wa_ctx(&workload->wa_ctx);
209 if (ret)
210 goto out;
211 }
209 212
210 ret = populate_shadow_context(workload); 213 ret = populate_shadow_context(workload);
211 if (ret) 214 if (ret)