libwd/0061-uadk-comp-optimize-for-spin-lock.patch
Yang Shen 12a3158ac7 libwd: backport for uadk from 2.3.27 to 2.3.28
Update some patch for uadk from mainline.
To get more infomation, please visit the homepage:
https://github.com/Linaro/uadk

Signed-off-by: Yang Shen <shenyang39@huawei.com>
2022-03-01 03:55:16 +00:00

44 lines
1.1 KiB
Diff

From 12afca7c245a7003c7d9e8e4445426794346940e Mon Sep 17 00:00:00 2001
From: Wenkai Lin <linwenkai6@hisilicon.com>
Date: Mon, 21 Feb 2022 20:09:51 +0800
Subject: [PATCH 67/76] uadk: comp: optimize for spin lock
Printf should be outside of the lock region.
Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com>
---
wd_comp.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/wd_comp.c b/wd_comp.c
index 7868551..4a97f06 100644
--- a/wd_comp.c
+++ b/wd_comp.c
@@ -718,15 +718,21 @@ int wd_do_comp_async(handle_t h_sess, struct wd_comp_req *req)
ret = wd_comp_setting.driver->comp_send(ctx->ctx, msg, priv);
if (ret < 0) {
+ pthread_spin_unlock(&ctx->lock);
WD_ERR("wd comp send err(%d)!\n", ret);
- wd_put_msg_to_pool(&wd_comp_setting.pool, idx, msg->tag);
+ goto fail_with_msg;
}
pthread_spin_unlock(&ctx->lock);
ret = wd_add_task_to_async_queue(&wd_comp_env_config, idx);
if (ret)
- wd_put_msg_to_pool(&wd_comp_setting.pool, idx, msg->tag);
+ goto fail_with_msg;
+
+ return 0;
+
+fail_with_msg:
+ wd_put_msg_to_pool(&wd_comp_setting.pool, idx, msg->tag);
return ret;
}
--
2.25.1