crypto: hisilicon/debugfs - Resolve the problem of applying for redundant space in...
authorChenghai Huang <huangchenghai2@huawei.com>
Sun, 7 Apr 2024 07:59:59 +0000 (15:59 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 12 Apr 2024 07:07:53 +0000 (15:07 +0800)
When dumping SQ, only the corresponding ID's SQE needs to be
dumped, and there is no need to apply for the entire SQE
memory. This is because excessive dump operations can lead to
memory resource waste.

Therefor apply for the space corresponding to sqe_id separately
to avoid space waste.

Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/debugfs.c

index e9fa42381242ef0f993b528507be72f5cc719f4d..8e7dfdc5b9895dc1f1222bfd9e6acf990ad0da92 100644 (file)
@@ -311,7 +311,7 @@ static int q_dump_param_parse(struct hisi_qm *qm, char *s,
 static int qm_sq_dump(struct hisi_qm *qm, char *s, char *name)
 {
        u16 sq_depth = qm->qp_array->cq_depth;
-       void *sqe, *sqe_curr;
+       void *sqe;
        struct hisi_qp *qp;
        u32 qp_id, sqe_id;
        int ret;
@@ -320,17 +320,16 @@ static int qm_sq_dump(struct hisi_qm *qm, char *s, char *name)
        if (ret)
                return ret;
 
-       sqe = kzalloc(qm->sqe_size * sq_depth, GFP_KERNEL);
+       sqe = kzalloc(qm->sqe_size, GFP_KERNEL);
        if (!sqe)
                return -ENOMEM;
 
        qp = &qm->qp_array[qp_id];
-       memcpy(sqe, qp->sqe, qm->sqe_size * sq_depth);
-       sqe_curr = sqe + (u32)(sqe_id * qm->sqe_size);
-       memset(sqe_curr + qm->debug.sqe_mask_offset, QM_SQE_ADDR_MASK,
+       memcpy(sqe, qp->sqe + sqe_id * qm->sqe_size, qm->sqe_size);
+       memset(sqe + qm->debug.sqe_mask_offset, QM_SQE_ADDR_MASK,
               qm->debug.sqe_mask_len);
 
-       dump_show(qm, sqe_curr, qm->sqe_size, name);
+       dump_show(qm, sqe, qm->sqe_size, name);
 
        kfree(sqe);