diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-02-13 02:44:34 +0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-02-13 02:44:34 +0400 |
commit | fb19e2ac7cc0f4addbdb1577501a4cdfb6183e7d (patch) | |
tree | 1d8128f225e5220eb19083373445dcc278a0d556 /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | 1fcb195e901575e503253cd16ad86326d4218b7d (diff) | |
download | linux-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.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) 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; |