diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-02-12 17:44:34 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-02-12 17:44:34 -0500 |
commit | fb19e2ac7cc0f4addbdb1577501a4cdfb6183e7d (patch) | |
tree | 1d8128f225e5220eb19083373445dcc278a0d556 /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | 1fcb195e901575e503253cd16ad86326d4218b7d (diff) |
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.c | 3 |
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) | |||
1513 | return 0; | 1513 | return 0; |
1514 | } | 1514 | } |
1515 | 1515 | ||
1516 | if (dev->primary->master) { | 1516 | if (!drm_core_check_feature(dev, DRIVER_MODESET) && |
1517 | dev->primary->master) { | ||
1517 | struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv; | 1518 | struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv; |
1518 | if (master_priv->sarea_priv) | 1519 | if (master_priv->sarea_priv) |
1519 | master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT; | 1520 | master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT; |