diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-10-29 05:41:23 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-10-29 05:54:29 -0400 |
commit | 7465378fd7c681f6cf2b74b3494c4f0991d8c8ac (patch) | |
tree | fb6266fb46cf3407792b361add7df31cb13588b5 | |
parent | bbe2e11a4b683ead070ad5823cdf756e1525b903 (diff) |
drm/i915: Convert BUG_ON(pin_count) from an impossible condition
Also spotted by Dan Carpenter.
obj->pin_count is unsigned so the BUG_ON(obj->pin_count<0) will never
trigger.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 7569b77fb403..08f57aedaf51 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -4128,12 +4128,7 @@ i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment, | |||
4128 | return ret; | 4128 | return ret; |
4129 | } | 4129 | } |
4130 | 4130 | ||
4131 | obj_priv->pin_count++; | 4131 | if (obj_priv->pin_count++ == 0) { |
4132 | |||
4133 | /* If the object is not active and not pending a flush, | ||
4134 | * remove it from the inactive list | ||
4135 | */ | ||
4136 | if (obj_priv->pin_count == 1) { | ||
4137 | i915_gem_info_add_pin(dev_priv, obj, mappable); | 4132 | i915_gem_info_add_pin(dev_priv, obj, mappable); |
4138 | if (!obj_priv->active) | 4133 | if (!obj_priv->active) |
4139 | list_move_tail(&obj_priv->mm_list, | 4134 | list_move_tail(&obj_priv->mm_list, |
@@ -4153,15 +4148,10 @@ i915_gem_object_unpin(struct drm_gem_object *obj) | |||
4153 | struct drm_i915_gem_object *obj_priv = to_intel_bo(obj); | 4148 | struct drm_i915_gem_object *obj_priv = to_intel_bo(obj); |
4154 | 4149 | ||
4155 | WARN_ON(i915_verify_lists(dev)); | 4150 | WARN_ON(i915_verify_lists(dev)); |
4156 | obj_priv->pin_count--; | 4151 | BUG_ON(obj_priv->pin_count == 0); |
4157 | BUG_ON(obj_priv->pin_count < 0); | ||
4158 | BUG_ON(obj_priv->gtt_space == NULL); | 4152 | BUG_ON(obj_priv->gtt_space == NULL); |
4159 | 4153 | ||
4160 | /* If the object is no longer pinned, and is | 4154 | if (--obj_priv->pin_count == 0) { |
4161 | * neither active nor being flushed, then stick it on | ||
4162 | * the inactive list | ||
4163 | */ | ||
4164 | if (obj_priv->pin_count == 0) { | ||
4165 | if (!obj_priv->active) | 4155 | if (!obj_priv->active) |
4166 | list_move_tail(&obj_priv->mm_list, | 4156 | list_move_tail(&obj_priv->mm_list, |
4167 | &dev_priv->mm.inactive_list); | 4157 | &dev_priv->mm.inactive_list); |