summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-13 02:44:34 +0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-13 02:44:34 +0400
commitfb19e2ac7cc0f4addbdb1577501a4cdfb6183e7d (patch)
tree1d8128f225e5220eb19083373445dcc278a0d556 /drivers/gpu/drm/i915/intel_ringbuffer.c
parent1fcb195e901575e503253cd16ad86326d4218b7d (diff)
downloadlinux-fb19e2ac7cc0f4addbdb1577501a4cdfb6183e7d.tar.xz
drm/i915: protect ringbuffer sarea update behind !MODESET
Avoids surprises when userspace races open/closes against this. Cc: Stéphane Marchesin <marcheu@chromium.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index ba686d75ff32..ae6d234b8c12 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1513,7 +1513,8 @@ static int ring_wait_for_space(struct intel_ring_buffer *ring, int n)
return 0;
}
- if (dev->primary->master) {
+ if (!drm_core_check_feature(dev, DRIVER_MODESET) &&
+ dev->primary->master) {
struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
if (master_priv->sarea_priv)
master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;