summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-01-26 11:41:11 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-02-13 11:03:45 +0100
commitd3ae08109d628d26615d7f7f4d8d53cdd8d71fd0 (patch)
treee66b4a742d65b958f3d137a39b7cb7ecd5b9e6d9 /drivers/gpu/drm
parent99ffa1629d737295e569267cf5940758139f9ddb (diff)
downloadlinux-3.10-d3ae08109d628d26615d7f7f4d8d53cdd8d71fd0.tar.gz
linux-3.10-d3ae08109d628d26615d7f7f4d8d53cdd8d71fd0.tar.bz2
linux-3.10-d3ae08109d628d26615d7f7f4d8d53cdd8d71fd0.zip
drm/i915: fix up locking inconsistency around gem_do_init
The locking in our setup and teardown paths is rather arbitrary, but generally we try to protect gem stuff with dev->struct_mutex. Further, the ums/gem ioctl to setup gem _does_ take the look. So fix up this benign inconsistency. Notice while reading through code. v2: Rebased on top of the ppgtt code. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 38dfcf91f40..39728fbb3f0 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1196,6 +1196,7 @@ static int i915_load_gem_init(struct drm_device *dev)
/* Basic memrange allocator for stolen space */
drm_mm_init(&dev_priv->mm.stolen, 0, prealloc_size);
+ mutex_lock(&dev->struct_mutex);
if (i915_enable_ppgtt && HAS_ALIASING_PPGTT(dev)) {
/* PPGTT pdes are stolen from global gtt ptes, so shrink the
* aperture accordingly when using aliasing ppgtt. */
@@ -1222,7 +1223,6 @@ static int i915_load_gem_init(struct drm_device *dev)
i915_gem_do_init(dev, 0, mappable_size, gtt_size - PAGE_SIZE);
}
- mutex_lock(&dev->struct_mutex);
ret = i915_gem_init_hw(dev);
mutex_unlock(&dev->struct_mutex);
if (ret) {