summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_fence.c
diff options
context:
space:
mode:
authorChris Wilson2016-08-18 18:16:45 +0200
committerChris Wilson2016-08-18 23:36:43 +0200
commit18034584784168c73bc8dd57104ea48c42f38527 (patch)
treec460a5e7e5e1e424121c186d3484b73b4950228b /drivers/gpu/drm/i915/i915_gem_fence.c
parentdrm/i915: Mark up the GTT flush following WC writes as ORIGIN_CPU (diff)
downloadkernel-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.c2
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);