diff options
Diffstat (limited to 'drivers/gpu/drm/i915')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_execbuffer.c | 13 | 
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 21fc11d8471..974a9f1068a 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -1064,17 +1064,9 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,  		ring = &dev_priv->ring[RCS];  		break;  	case I915_EXEC_BSD: -		if (!HAS_BSD(dev)) { -			DRM_DEBUG("execbuf with invalid ring (BSD)\n"); -			return -EINVAL; -		}  		ring = &dev_priv->ring[VCS];  		break;  	case I915_EXEC_BLT: -		if (!HAS_BLT(dev)) { -			DRM_DEBUG("execbuf with invalid ring (BLT)\n"); -			return -EINVAL; -		}  		ring = &dev_priv->ring[BCS];  		break;  	default: @@ -1082,6 +1074,11 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,  			  (int)(args->flags & I915_EXEC_RING_MASK));  		return -EINVAL;  	} +	if (!intel_ring_initialized(ring)) { +		DRM_DEBUG("execbuf with invalid ring: %d\n", +			  (int)(args->flags & I915_EXEC_RING_MASK)); +		return -EINVAL; +	}  	mode = args->flags & I915_EXEC_CONSTANTS_MASK;  	mask = I915_EXEC_CONSTANTS_MASK;  |