diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_request.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_request.c | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index c0df71d7d0ff..e2b78db685ea 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -1017,11 +1017,15 @@ i915_request_await_request(struct i915_request *to, struct i915_request *from)  	GEM_BUG_ON(to == from);  	GEM_BUG_ON(to->timeline == from->timeline); -	if (i915_request_completed(from)) +	if (i915_request_completed(from)) { +		i915_sw_fence_set_error_once(&to->submit, from->fence.error);  		return 0; +	}  	if (to->engine->schedule) { -		ret = i915_sched_node_add_dependency(&to->sched, &from->sched); +		ret = i915_sched_node_add_dependency(&to->sched, +						     &from->sched, +						     I915_DEPENDENCY_EXTERNAL);  		if (ret < 0)  			return ret;  	} @@ -1183,7 +1187,9 @@ __i915_request_await_execution(struct i915_request *to,  	/* Couple the dependency tree for PI on this exposed to->fence */  	if (to->engine->schedule) { -		err = i915_sched_node_add_dependency(&to->sched, &from->sched); +		err = i915_sched_node_add_dependency(&to->sched, +						     &from->sched, +						     I915_DEPENDENCY_WEAK);  		if (err < 0)  			return err;  	}  |