|
@@ -1210,8 +1210,16 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
|
|
if (i915_gem_request_completed(req, true))
|
|
if (i915_gem_request_completed(req, true))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- timeout_expire = timeout ?
|
|
|
|
- jiffies + nsecs_to_jiffies_timeout((u64)*timeout) : 0;
|
|
|
|
|
|
+ timeout_expire = 0;
|
|
|
|
+ if (timeout) {
|
|
|
|
+ if (WARN_ON(*timeout < 0))
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
|
|
+ if (*timeout == 0)
|
|
|
|
+ return -ETIME;
|
|
|
|
+
|
|
|
|
+ timeout_expire = jiffies + nsecs_to_jiffies_timeout(*timeout);
|
|
|
|
+ }
|
|
|
|
|
|
if (INTEL_INFO(dev_priv)->gen >= 6)
|
|
if (INTEL_INFO(dev_priv)->gen >= 6)
|
|
gen6_rps_boost(dev_priv, rps, req->emitted_jiffies);
|
|
gen6_rps_boost(dev_priv, rps, req->emitted_jiffies);
|