diff options
author | Chris Wilson | 2016-08-18 18:16:45 +0200 |
---|---|---|
committer | Chris Wilson | 2016-08-18 23:36:43 +0200 |
commit | 18034584784168c73bc8dd57104ea48c42f38527 (patch) | |
tree | c460a5e7e5e1e424121c186d3484b73b4950228b /drivers/gpu/drm/i915/i915_gem_fence.c | |
parent | drm/i915: Mark up the GTT flush following WC writes as ORIGIN_CPU (diff) | |
download | kernel-qcow2-linux-18034584784168c73bc8dd57104ea48c42f38527.tar.gz kernel-qcow2-linux-18034584784168c73bc8dd57104ea48c42f38527.tar.xz kernel-qcow2-linux-18034584784168c73bc8dd57104ea48c42f38527.zip |
drm/i915: Fallback to single page pwrite/pread if unable to release fence
If we cannot release the fence (for example if someone is inexplicably
trying to write into a tiled framebuffer that is currently pinned to the
display! *cough* kms_frontbuffer_tracking *cough*) fallback to using the
page-by-page pwrite/pread interface, rather than fail the syscall
entirely.
Since this is triggerable by the user (along pwrite) we have to remove
the WARN_ON(fence->pin_count).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160818161718.27187-6-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_fence.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_fence.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_fence.c b/drivers/gpu/drm/i915/i915_gem_fence.c index 334c3c4e8357..b0c6c2777725 100644 --- a/drivers/gpu/drm/i915/i915_gem_fence.c +++ b/drivers/gpu/drm/i915/i915_gem_fence.c @@ -298,7 +298,7 @@ i915_gem_object_put_fence(struct drm_i915_gem_object *obj) fence = &dev_priv->fence_regs[obj->fence_reg]; - if (WARN_ON(fence->pin_count)) + if (fence->pin_count) return -EBUSY; i915_gem_object_fence_lost(obj); |