commit: e26726: digest: fix codecheck warning Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com> (cherry picked from commit f6221f178fe43735fe56d45ae8d030dd949b3a23)
114 lines
2.6 KiB
Diff
114 lines
2.6 KiB
Diff
From 1cd8bd255ae0f55742d2dffa7ba09aea28d56c9a Mon Sep 17 00:00:00 2001
|
|
From: Weili Qian <qianweili@huawei.com>
|
|
Date: Wed, 22 Dec 2021 03:37:13 +0000
|
|
Subject: [PATCH 03/18] ecc: fix codecheck warning
|
|
|
|
fix a more than 50 lines function 'uadk_wd_ecc_init'.
|
|
|
|
Signed-off-by: Weili Qian <qianweili@huawei.com>
|
|
---
|
|
src/uadk_pkey.c | 61 +++++++++++++++++++++++++------------------------
|
|
1 file changed, 31 insertions(+), 30 deletions(-)
|
|
|
|
diff --git a/src/uadk_pkey.c b/src/uadk_pkey.c
|
|
index c20b22b..62362b0 100644
|
|
--- a/src/uadk_pkey.c
|
|
+++ b/src/uadk_pkey.c
|
|
@@ -178,38 +178,20 @@ static int uadk_e_wd_ecc_env_init(struct uacce_dev *dev)
|
|
return async_register_poll_fn(ASYNC_TASK_ECC, uadk_e_ecc_env_poll);
|
|
}
|
|
|
|
-static int uadk_wd_ecc_init(struct ecc_res_config *config)
|
|
+static int uadk_e_wd_ecc_general_init(struct uacce_dev *dev,
|
|
+ struct wd_sched *sched)
|
|
{
|
|
- struct wd_sched *sched = &config->sched.wd_sched;
|
|
struct wd_ctx_config *ctx_cfg;
|
|
- struct uacce_dev *dev;
|
|
int ret, i;
|
|
|
|
- /* ctx is no difference for sm2/ecdsa/ecdh/x25519/x448 */
|
|
- dev = wd_get_accel_dev("ecdsa");
|
|
- if (!dev)
|
|
- return -ENOMEM;
|
|
-
|
|
- config->numa_id = dev->numa_id;
|
|
-
|
|
- ret = uadk_e_is_env_enabled("ecc");
|
|
- if (ret == ENV_ENABLED) {
|
|
- ret = uadk_e_wd_ecc_env_init(dev);
|
|
- goto free_dev;
|
|
- }
|
|
-
|
|
- if (ecc_res.ctx_res) {
|
|
- ret = 0;
|
|
- goto free_dev;
|
|
- }
|
|
+ if (ecc_res.ctx_res)
|
|
+ return 0;
|
|
|
|
ctx_cfg = calloc(1, sizeof(struct wd_ctx_config));
|
|
- if (!ctx_cfg) {
|
|
+ if (!ctx_cfg)
|
|
ret = -ENOMEM;
|
|
- goto free_dev;
|
|
- }
|
|
- ecc_res.ctx_res = ctx_cfg;
|
|
|
|
+ ecc_res.ctx_res = ctx_cfg;
|
|
ctx_cfg->ctx_num = CTX_NUM;
|
|
ctx_cfg->ctxs = calloc(CTX_NUM, sizeof(struct wd_ctx));
|
|
if (!ctx_cfg->ctxs) {
|
|
@@ -230,23 +212,42 @@ static int uadk_wd_ecc_init(struct ecc_res_config *config)
|
|
if (ret)
|
|
goto free_ctx;
|
|
|
|
- free(dev);
|
|
-
|
|
return async_register_poll_fn(ASYNC_TASK_ECC, uadk_ecc_poll);
|
|
|
|
free_ctx:
|
|
for (i = 0; i < CTX_NUM; i++) {
|
|
- if (ctx_cfg->ctxs[i].ctx) {
|
|
+ if (ctx_cfg->ctxs[i].ctx)
|
|
wd_release_ctx(ctx_cfg->ctxs[i].ctx);
|
|
- ctx_cfg->ctxs[i].ctx = 0;
|
|
- }
|
|
}
|
|
free(ctx_cfg->ctxs);
|
|
free_cfg:
|
|
free(ctx_cfg);
|
|
ecc_res.ctx_res = NULL;
|
|
-free_dev:
|
|
+
|
|
+ return ret;
|
|
+}
|
|
+
|
|
+static int uadk_wd_ecc_init(struct ecc_res_config *config)
|
|
+{
|
|
+ struct wd_sched *sched = &config->sched.wd_sched;
|
|
+ struct uacce_dev *dev;
|
|
+ int ret;
|
|
+
|
|
+ /* ctx is no difference for sm2/ecdsa/ecdh/x25519/x448 */
|
|
+ dev = wd_get_accel_dev("ecdsa");
|
|
+ if (!dev)
|
|
+ return -ENOMEM;
|
|
+
|
|
+ config->numa_id = dev->numa_id;
|
|
+
|
|
+ ret = uadk_e_is_env_enabled("ecc");
|
|
+ if (ret)
|
|
+ ret = uadk_e_wd_ecc_env_init(dev);
|
|
+ else
|
|
+ ret = uadk_e_wd_ecc_general_init(dev, sched);
|
|
+
|
|
free(dev);
|
|
+
|
|
return ret;
|
|
}
|
|
|
|
--
|
|
2.24.4
|
|
|