diff options
| author | Owain Ainsworth <zerooa@googlemail.com> | 2010-02-09 14:25:55 +0000 | 
|---|---|---|
| committer | Eric Anholt <eric@anholt.net> | 2010-02-10 15:08:00 -0800 | 
| commit | a40e8d3139e9eb54bf1d29f91639a6c5e05f652e (patch) | |
| tree | b0dc8c88f3872f57c9b29d76d5f679c2eb90792f | |
| parent | aacef09b59e99d9e919ede74d107d5d7f3721432 (diff) | |
drm/i915: Correctly return -ENOMEM on allocation failure in cmdbuf ioctls.
Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
| -rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 4 | 
2 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index e660ac07f3b2..2307f98349f7 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -735,8 +735,10 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,  	if (cmdbuf->num_cliprects) {  		cliprects = kcalloc(cmdbuf->num_cliprects,  				    sizeof(struct drm_clip_rect), GFP_KERNEL); -		if (cliprects == NULL) +		if (cliprects == NULL) { +			ret = -ENOMEM;  			goto fail_batch_free; +		}  		ret = copy_from_user(cliprects, cmdbuf->cliprects,  				     cmdbuf->num_cliprects * diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 11daa618385f..ec8a0d7ffa39 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3688,8 +3688,10 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,  	if (args->num_cliprects != 0) {  		cliprects = kcalloc(args->num_cliprects, sizeof(*cliprects),  				    GFP_KERNEL); -		if (cliprects == NULL) +		if (cliprects == NULL) { +			ret = -ENOMEM;  			goto pre_mutex_err; +		}  		ret = copy_from_user(cliprects,  				     (struct drm_clip_rect __user *) | 
