drm/etnaviv: fix missing unlock on error in etnaviv_iommuv1_context_alloc()
authorWei Yongjun <weiyongjun1@huawei.com>
Mon, 19 Aug 2019 06:17:33 +0000 (06:17 +0000)
committerLucas Stach <l.stach@pengutronix.de>
Mon, 2 Sep 2019 10:48:55 +0000 (12:48 +0200)
Add the missing unlock before return from function etnaviv_iommuv1_context_alloc()
in the error handling case.

Fixes: 27b67278e007 ("drm/etnaviv: rework MMU handling")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
drivers/gpu/drm/etnaviv/etnaviv_iommu.c

index aac8dbf3ea563b9261d977f554508bdc8cccf8fa..1a7c89a67bea3c4e2464c8017d7f4d69474d78b1 100644 (file)
@@ -140,8 +140,10 @@ etnaviv_iommuv1_context_alloc(struct etnaviv_iommu_global *global)
        }
 
        v1_context = kzalloc(sizeof(*v1_context), GFP_KERNEL);
-       if (!v1_context)
+       if (!v1_context) {
+               mutex_unlock(&global->lock);
                return NULL;
+       }
 
        v1_context->pgtable_cpu = dma_alloc_wc(global->dev, PT_SIZE,
                                               &v1_context->pgtable_dma,