We have to drop a lock before returning -ENOMEM here. Fixes: a8c21a5451d8 ('drm/etnaviv: add initial etnaviv DRM driver') Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c index 8d6f859..9f77c3b 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c @@ -305,8 +305,10 @@ int etnaviv_gem_get_iova(struct etnaviv_gpu *gpu, mapping = etnaviv_gem_get_vram_mapping(etnaviv_obj, NULL); if (!mapping) { mapping = kzalloc(sizeof(*mapping), GFP_KERNEL); - if (!mapping) - return -ENOMEM; + if (!mapping) { + ret = -ENOMEM; + goto out; + } INIT_LIST_HEAD(&mapping->scan_node); mapping->object = etnaviv_obj;