提交 ea6d4c07 编写于 作者: A Axel Lin 提交者: Santosh Shilimkar

soc: ti: knav_qmss_queue: Fix unbalanced locking ins knav_pool_create()

Don't call mutex_unlock() in the error patch if the mutex_lock() is not called.
Signed-off-by: NAxel Lin <axel.lin@ingics.com>
Signed-off-by: NSantosh Shilimkar <ssantosh@kernel.org>
上级 42813295
......@@ -785,7 +785,7 @@ void *knav_pool_create(const char *name,
dev_err(kdev->dev, "out of descs in region(%d) for pool(%s)\n",
region_id, name);
ret = -ENOMEM;
goto err;
goto err_unlock;
}
/* Region maintains a sorted (by region offset) list of pools
......@@ -815,15 +815,16 @@ void *knav_pool_create(const char *name,
dev_err(kdev->dev, "pool(%s) create failed: fragmented desc pool in region(%d)\n",
name, region_id);
ret = -ENOMEM;
goto err;
goto err_unlock;
}
mutex_unlock(&knav_dev_lock);
kdesc_fill_pool(pool);
return pool;
err:
err_unlock:
mutex_unlock(&knav_dev_lock);
err:
kfree(pool->name);
devm_kfree(kdev->dev, pool);
return ERR_PTR(ret);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册