Commit 4a87b8ca authored by Daniel Vetter's avatar Daniel Vetter Committed by Eric Anholt

drm/i915: fixup active list locking in object_unbind

All other accesses take this spinlock, so do this here, too.
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent 798750e3
...@@ -1987,6 +1987,7 @@ int ...@@ -1987,6 +1987,7 @@ int
i915_gem_object_unbind(struct drm_gem_object *obj) i915_gem_object_unbind(struct drm_gem_object *obj)
{ {
struct drm_device *dev = obj->dev; struct drm_device *dev = obj->dev;
drm_i915_private_t *dev_priv = dev->dev_private;
struct drm_i915_gem_object *obj_priv = obj->driver_private; struct drm_i915_gem_object *obj_priv = obj->driver_private;
int ret = 0; int ret = 0;
...@@ -2042,8 +2043,10 @@ i915_gem_object_unbind(struct drm_gem_object *obj) ...@@ -2042,8 +2043,10 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
} }
/* Remove ourselves from the LRU list if present. */ /* Remove ourselves from the LRU list if present. */
spin_lock(&dev_priv->mm.active_list_lock);
if (!list_empty(&obj_priv->list)) if (!list_empty(&obj_priv->list))
list_del_init(&obj_priv->list); list_del_init(&obj_priv->list);
spin_unlock(&dev_priv->mm.active_list_lock);
if (i915_gem_object_is_purgeable(obj_priv)) if (i915_gem_object_is_purgeable(obj_priv))
i915_gem_object_truncate(obj); i915_gem_object_truncate(obj);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment