mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
crypto: hisilicon/sec2 - add debugfs for Hisilicon SEC
Hisilicon SEC engine driver uses debugfs to provides IO operation debug information Signed-off-by: Kai Ye <yekai13@huawei.com> Signed-off-by: Longfang Liu <liulongfang@huawei.com> Signed-off-by: Shukun Tan <tanshukun1@huawei.com> Reviewed-by: Zhou Wang <wangzhou1@hisilicon.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
@@ -148,6 +148,7 @@ static int sec_aead_verify(struct sec_req *req)
|
||||
static void sec_req_cb(struct hisi_qp *qp, void *resp)
|
||||
{
|
||||
struct sec_qp_ctx *qp_ctx = qp->qp_ctx;
|
||||
struct sec_dfx *dfx = &qp_ctx->ctx->sec->debug.dfx;
|
||||
struct sec_sqe *bd = resp;
|
||||
struct sec_ctx *ctx;
|
||||
struct sec_req *req;
|
||||
@@ -157,11 +158,16 @@ static void sec_req_cb(struct hisi_qp *qp, void *resp)
|
||||
|
||||
type = bd->type_cipher_auth & SEC_TYPE_MASK;
|
||||
if (unlikely(type != SEC_BD_TYPE2)) {
|
||||
atomic64_inc(&dfx->err_bd_cnt);
|
||||
pr_err("err bd type [%d]\n", type);
|
||||
return;
|
||||
}
|
||||
|
||||
req = qp_ctx->req_list[le16_to_cpu(bd->type2.tag)];
|
||||
if (unlikely(!req)) {
|
||||
atomic64_inc(&dfx->invalid_req_cnt);
|
||||
return;
|
||||
}
|
||||
req->err_type = bd->type2.error_type;
|
||||
ctx = req->ctx;
|
||||
done = le16_to_cpu(bd->type2.done_flag) & SEC_DONE_MASK;
|
||||
@@ -174,12 +180,13 @@ static void sec_req_cb(struct hisi_qp *qp, void *resp)
|
||||
"err_type[%d],done[%d],flag[%d]\n",
|
||||
req->err_type, done, flag);
|
||||
err = -EIO;
|
||||
atomic64_inc(&dfx->done_flag_cnt);
|
||||
}
|
||||
|
||||
if (ctx->alg_type == SEC_AEAD && !req->c_req.encrypt)
|
||||
err = sec_aead_verify(req);
|
||||
|
||||
atomic64_inc(&ctx->sec->debug.dfx.recv_cnt);
|
||||
atomic64_inc(&dfx->recv_cnt);
|
||||
|
||||
ctx->req_op->buf_unmap(ctx, req);
|
||||
|
||||
@@ -200,10 +207,12 @@ static int sec_bd_send(struct sec_ctx *ctx, struct sec_req *req)
|
||||
return -ENOBUFS;
|
||||
|
||||
if (!ret) {
|
||||
if (req->fake_busy)
|
||||
if (req->fake_busy) {
|
||||
atomic64_inc(&ctx->sec->debug.dfx.send_busy_cnt);
|
||||
ret = -EBUSY;
|
||||
else
|
||||
} else {
|
||||
ret = -EINPROGRESS;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user