From: Russell King rmk+kernel@arm.linux.org.uk
We always call drm_gem_object_release() from both etnaviv_free_cmd() and etnaviv_free_obj(). Move this to the parent function so it is done at one place only.
Signed-off-by: Russell King rmk+kernel@arm.linux.org.uk --- drivers/staging/etnaviv/etnaviv_gem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/etnaviv/etnaviv_gem.c b/drivers/staging/etnaviv/etnaviv_gem.c index 58a56b9e7abc..827622588ffc 100644 --- a/drivers/staging/etnaviv/etnaviv_gem.c +++ b/drivers/staging/etnaviv/etnaviv_gem.c @@ -521,8 +521,6 @@ static void etnaviv_gem_cmd_release(struct etnaviv_gem_object *etnaviv_obj) { dma_free_coherent(etnaviv_obj->base.dev->dev, etnaviv_obj->base.size, etnaviv_obj->vaddr, etnaviv_obj->paddr); - - drm_gem_object_release(obj); }
static const struct etnaviv_gem_ops etnaviv_gem_cmd_ops = { @@ -549,8 +547,6 @@ static void etnaviv_free_obj(struct drm_gem_object *obj)
if (etnaviv_obj->resv == &etnaviv_obj->_resv) reservation_object_fini(etnaviv_obj->resv); - - drm_gem_object_release(obj); }
static void etnaviv_gem_shmem_release(struct etnaviv_gem_object *etnaviv_obj) @@ -581,6 +577,8 @@ void etnaviv_gem_free_object(struct drm_gem_object *obj) else etnaviv_free_obj(obj);
+ drm_gem_object_release(obj); + kfree(etnaviv_obj); }