Which is corresonding to the etnaviv_gem_obj_add() Signed-off-by: Sui Jingfeng <sui.jingfeng@xxxxxxxxx> --- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c index 39cfece67b90..3732288ff530 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c @@ -19,6 +19,8 @@ static struct lock_class_key etnaviv_shm_lock_class; static struct lock_class_key etnaviv_userptr_lock_class; +static void etnaviv_gem_obj_remove(struct drm_gem_object *obj); + static void etnaviv_gem_scatter_map(struct etnaviv_gem_object *etnaviv_obj) { struct drm_device *dev = etnaviv_obj->base.dev; @@ -555,15 +557,12 @@ void etnaviv_gem_free_object(struct drm_gem_object *obj) { struct drm_device *drm = obj->dev; struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); - struct etnaviv_drm_private *priv = obj->dev->dev_private; struct etnaviv_vram_mapping *mapping, *tmp; /* object should not be active */ drm_WARN_ON(drm, is_active(etnaviv_obj)); - mutex_lock(&priv->gem_lock); - list_del(&etnaviv_obj->gem_node); - mutex_unlock(&priv->gem_lock); + etnaviv_gem_obj_remove(obj); list_for_each_entry_safe(mapping, tmp, &etnaviv_obj->vram_list, obj_node) { @@ -595,6 +594,16 @@ void etnaviv_gem_obj_add(struct drm_device *dev, struct drm_gem_object *obj) mutex_unlock(&priv->gem_lock); } +static void etnaviv_gem_obj_remove(struct drm_gem_object *obj) +{ + struct etnaviv_drm_private *priv = to_etnaviv_priv(obj->dev); + struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); + + mutex_lock(&priv->gem_lock); + list_del(&etnaviv_obj->gem_node); + mutex_unlock(&priv->gem_lock); +} + static const struct vm_operations_struct vm_ops = { .fault = etnaviv_gem_fault, .open = drm_gem_vm_open, -- 2.43.0