diff options
author | Ben Widawsky <ben@bwidawsk.net> | 2013-07-17 15:19:02 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-07-17 16:24:51 -0400 |
commit | f7f181843e6c24644b4b71b8631a5ea87de05158 (patch) | |
tree | 74af92a69e9f846b21ad7bbd55a713162fbdf1c1 | |
parent | 5cef07e1628300aeda9ac9dae95a2b406175b3ff (diff) |
drm/i915: Free stolen node on failed preallocation
The odds of this happening are *extremely* unlikely.
Reported-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_stolen.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c index 90a618335db9..cb527e7930ad 100644 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c | |||
@@ -402,7 +402,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev, | |||
402 | &obj->gtt_space); | 402 | &obj->gtt_space); |
403 | if (ret) { | 403 | if (ret) { |
404 | DRM_DEBUG_KMS("failed to allocate stolen GTT space\n"); | 404 | DRM_DEBUG_KMS("failed to allocate stolen GTT space\n"); |
405 | goto unref_out; | 405 | goto err_out; |
406 | } | 406 | } |
407 | } | 407 | } |
408 | 408 | ||
@@ -413,7 +413,8 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev, | |||
413 | 413 | ||
414 | return obj; | 414 | return obj; |
415 | 415 | ||
416 | unref_out: | 416 | err_out: |
417 | drm_mm_put_block(stolen); | ||
417 | drm_gem_object_unreference(&obj->base); | 418 | drm_gem_object_unreference(&obj->base); |
418 | return NULL; | 419 | return NULL; |
419 | } | 420 | } |