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 --- drivers/gpu/drm/etnaviv/etnaviv_iommu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_iommu.c b/drivers/gpu/drm/etnaviv/etnaviv_iommu.c index aac8dbf3ea56..1a7c89a67bea 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_iommu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_iommu.c @@ -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,
On Mo, 2019-08-19 at 06:17 +0000, Wei Yongjun wrote:
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
Thanks, applied.
For my education, can you tell me which tool you did use to catch this issue?
Regards, Lucas
drivers/gpu/drm/etnaviv/etnaviv_iommu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_iommu.c b/drivers/gpu/drm/etnaviv/etnaviv_iommu.c index aac8dbf3ea56..1a7c89a67bea 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_iommu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_iommu.c @@ -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,
dri-devel@lists.freedesktop.org