Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1987,6 +1987,7 @@ int
i915_gem_object_unbind(struct drm_gem_object *obj)
{
	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;
	int ret = 0;

@@ -2042,8 +2043,10 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
	}

	/* Remove ourselves from the LRU list if present. */
	spin_lock(&dev_priv->mm.active_list_lock);
	if (!list_empty(&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))
		i915_gem_object_truncate(obj);