Browse Source

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>
Eric Anholt 16 years ago
parent
commit
299eb93c5f
1 changed files with 3 additions and 2 deletions
  1. 3 2
      drivers/gpu/drm/i915/i915_irq.c

+ 3 - 2
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;
 	drm_i915_irq_emit_t *emit = data;
 	int result;
 	int result;
 
 
-	RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
-
 	if (!dev_priv) {
 	if (!dev_priv) {
 		DRM_ERROR("called with no initialization\n");
 		DRM_ERROR("called with no initialization\n");
 		return -EINVAL;
 		return -EINVAL;
 	}
 	}
+
+	RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
+
 	mutex_lock(&dev->struct_mutex);
 	mutex_lock(&dev->struct_mutex);
 	result = i915_emit_irq(dev);
 	result = i915_emit_irq(dev);
 	mutex_unlock(&dev->struct_mutex);
 	mutex_unlock(&dev->struct_mutex);