Static analysis issue:

Though probably unnecessary given the cache is being freed at this step,
for the sake of consistency, ensure that the cache lock is always
unlocked after drm_pagemap_cache_fini.

Fixes: 77f14f2f2d73f ("drm/pagemap: Add a drm_pagemap cache and shrinker")
Signed-off-by: Jonathan Cavitt <[email protected]>
Cc: Thomas Hellstrom <[email protected]>
Cc: Matthew Brost <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
---
 drivers/gpu/drm/drm_pagemap_util.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/drm_pagemap_util.c 
b/drivers/gpu/drm/drm_pagemap_util.c
index c6ae3357c7fb..79e07b3658ed 100644
--- a/drivers/gpu/drm/drm_pagemap_util.c
+++ b/drivers/gpu/drm/drm_pagemap_util.c
@@ -65,18 +65,18 @@ static void drm_pagemap_cache_fini(void *arg)
        drm_dbg(cache->shrinker->drm, "Destroying dpagemap cache.\n");
        spin_lock(&cache->lock);
        dpagemap = cache->dpagemap;
-       if (!dpagemap) {
-               spin_unlock(&cache->lock);
+       if (!dpagemap)
                goto out;
-       }
 
        if (drm_pagemap_shrinker_cancel(dpagemap)) {
                cache->dpagemap = NULL;
                spin_unlock(&cache->lock);
                drm_pagemap_destroy(dpagemap, false);
+       } else {
+out:
+               spin_unlock(&cache->lock);
        }
 
-out:
        mutex_destroy(&cache->lookup_mutex);
        kfree(cache);
 }
-- 
2.43.0

Reply via email to