diff --git a/drivers/video/rockchip/rga3/rga_mm.c b/drivers/video/rockchip/rga3/rga_mm.c index 94b54d45af08..fb10f161c053 100644 --- a/drivers/video/rockchip/rga3/rga_mm.c +++ b/drivers/video/rockchip/rga3/rga_mm.c @@ -840,6 +840,11 @@ static int rga_mm_handle_remove(int id, void *ptr, void *data) return 0; } +static void rga_mm_buffer_destroy(struct rga_internal_buffer *buffer) +{ + rga_mm_kref_release_buffer(&buffer->refcount); +} + static struct rga_internal_buffer * rga_mm_lookup_external(struct rga_mm *mm_session, struct rga_external_buffer *external_buffer, @@ -2142,9 +2147,9 @@ int rga_mm_session_release_buffer(struct rga_session *session) idr_for_each_entry(&mm->memory_idr, buffer, i) { if (session == buffer->session) { - pr_err("[tgid:%d] Decrement the reference of handle[%d] when the user exits\n", + pr_err("[tgid:%d] Destroy handle[%d] when the user exits\n", session->tgid, buffer->handle); - kref_put(&buffer->refcount, rga_mm_kref_release_buffer); + rga_mm_buffer_destroy(buffer); } }