diff options
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/cmd_parser.c')
| -rw-r--r-- | drivers/gpu/drm/i915/gvt/cmd_parser.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c index 51241de5e7a7..713848c36349 100644 --- a/drivers/gpu/drm/i915/gvt/cmd_parser.c +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c @@ -2536,6 +2536,11 @@ static int scan_workload(struct intel_vgpu_workload *workload)  		gma_head == gma_tail)  		return 0; +	if (!intel_gvt_ggtt_validate_range(s.vgpu, s.ring_start, s.ring_size)) { +		ret = -EINVAL; +		goto out; +	} +  	ret = ip_gma_set(&s, gma_head);  	if (ret)  		goto out; @@ -2579,6 +2584,11 @@ static int scan_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)  	s.rb_va = wa_ctx->indirect_ctx.shadow_va;  	s.workload = workload; +	if (!intel_gvt_ggtt_validate_range(s.vgpu, s.ring_start, s.ring_size)) { +		ret = -EINVAL; +		goto out; +	} +  	ret = ip_gma_set(&s, gma_head);  	if (ret)  		goto out;  | 
