diff options
author | Eric Anholt <eric@anholt.net> | 2008-12-10 13:09:41 -0500 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2008-12-29 02:47:25 -0500 |
commit | b117763627ef4d24086801dd5f74c9eb2f487790 (patch) | |
tree | 3adf4f6518cd5b69b74c7d858b941505463237a4 | |
parent | e7da40f0c89c10ad3cbb63b754abaf6c3e792f79 (diff) |
drm/i915: Don't double-unpin buffers if we take a signal in evict_everything().
We haven't seen this in practice, but it was visible when looking at a bug
report from when i915_gem_evict_everything() was broken and would always
return error.
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index c4ccaf3b3c7f..6a288a758385 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -2498,6 +2498,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data, | |||
2498 | /* unpin all of our buffers */ | 2498 | /* unpin all of our buffers */ |
2499 | for (i = 0; i < pinned; i++) | 2499 | for (i = 0; i < pinned; i++) |
2500 | i915_gem_object_unpin(object_list[i]); | 2500 | i915_gem_object_unpin(object_list[i]); |
2501 | pinned = 0; | ||
2501 | 2502 | ||
2502 | /* evict everyone we can from the aperture */ | 2503 | /* evict everyone we can from the aperture */ |
2503 | ret = i915_gem_evict_everything(dev); | 2504 | ret = i915_gem_evict_everything(dev); |