summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-02-24 22:14:12 -0800
committerDave Airlie <airlied@linux.ie>2009-03-03 09:53:05 +1000
commit299eb93c5f651b2bc368ada67d8471e4c575fa21 (patch)
tree342c43be5b83b399a80b9a1f2e9b4ff1f0cd6eca
parentfda714c29cdf360464059044b221450decb4b913 (diff)
downloadlinux-3.10-299eb93c5f651b2bc368ada67d8471e4c575fa21.tar.gz
linux-3.10-299eb93c5f651b2bc368ada67d8471e4c575fa21.tar.bz2
linux-3.10-299eb93c5f651b2bc368ada67d8471e4c575fa21.zip
drm/i915: Fix use-before-null-check in i915_irq_emit().
This could be triggered by a client asking to emit an irq when the device wasn't initialized. Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@linux.ie>
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 548ff2c6643..87b6b603469 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -383,12 +383,13 @@ int i915_irq_emit(struct drm_device *dev, void *data,
drm_i915_irq_emit_t *emit = data;
int result;
- RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
-
if (!dev_priv) {
DRM_ERROR("called with no initialization\n");
return -EINVAL;
}
+
+ RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
+
mutex_lock(&dev->struct_mutex);
result = i915_emit_irq(dev);
mutex_unlock(&dev->struct_mutex);