From b69dc0fb3e319ff815bc8a136846213a8202c294 Mon Sep 17 00:00:00 2001 From: Dmitry Osipenko <dmitry.osipenko@collabora.com> Date: Wed, 3 Apr 2024 19:48:54 +0300 Subject: [PATCH] fixup: drm/panfrost: Explicitly get and put drm-shmem pages --- drivers/gpu/drm/panfrost/panfrost_gem.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/panfrost/panfrost_gem.c b/drivers/gpu/drm/panfrost/panfrost_gem.c index 3c353c26f304e..78932e2baedab 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gem.c +++ b/drivers/gpu/drm/panfrost/panfrost_gem.c @@ -75,17 +75,19 @@ static void panfrost_gem_mapping_release(struct kref *kref) sg_free_table(&bo->sgts[i]); } } + + drm_gem_shmem_put_pages(&bo->base); kvfree(bo->sgts); + bo->sgts = NULL; } /* Pages ref is owned by the panfrost_gem_mapping object. We must * release our pages ref (if any), before releasing the object * ref. * Non-heap BOs acquired the pages at panfrost_gem_mapping creation - * time, and heap BOs may have acquired pages if the fault handler - * was called, in which case bo->sgts should be non-NULL. + * time. */ - if (!bo->base.base.import_attach && (!bo->is_heap || bo->sgts)) { + if (!bo->base.base.import_attach && !bo->is_heap && bo->sgts) { drm_gem_shmem_put_pages(&bo->base); bo->sgts = NULL; } -- GitLab