diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index f45f385c84cd..eeb768818136 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -1967,11 +1967,12 @@ i915_gem_object_unbind(struct drm_gem_object *obj) | |||
1967 | * before we unbind. | 1967 | * before we unbind. |
1968 | */ | 1968 | */ |
1969 | ret = i915_gem_object_set_to_cpu_domain(obj, 1); | 1969 | ret = i915_gem_object_set_to_cpu_domain(obj, 1); |
1970 | if (ret) { | 1970 | if (ret == -ERESTARTSYS) |
1971 | if (ret != -ERESTARTSYS) | ||
1972 | DRM_ERROR("set_domain failed: %d\n", ret); | ||
1973 | return ret; | 1971 | return ret; |
1974 | } | 1972 | /* Continue on if we fail due to EIO, the GPU is hung so we |
1973 | * should be safe and we need to cleanup or else we might | ||
1974 | * cause memory corruption through use-after-free. | ||
1975 | */ | ||
1975 | 1976 | ||
1976 | BUG_ON(obj_priv->active); | 1977 | BUG_ON(obj_priv->active); |
1977 | 1978 | ||
@@ -2007,7 +2008,7 @@ i915_gem_object_unbind(struct drm_gem_object *obj) | |||
2007 | 2008 | ||
2008 | trace_i915_gem_object_unbind(obj); | 2009 | trace_i915_gem_object_unbind(obj); |
2009 | 2010 | ||
2010 | return 0; | 2011 | return ret; |
2011 | } | 2012 | } |
2012 | 2013 | ||
2013 | static struct drm_gem_object * | 2014 | static struct drm_gem_object * |