]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: hisilicon/debugfs - fix the struct pointer incorrectly offset problem
authorChenghai Huang <huangchenghai2@huawei.com>
Sat, 30 Nov 2024 08:01:31 +0000 (16:01 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 10 Dec 2024 05:40:25 +0000 (13:40 +0800)
Offset based on (id * size) is wrong for sqc and cqc.
(*sqc/*cqc + 1) can already offset sizeof(struct(Xqc)) length.

Fixes: 15f112f9cef5 ("crypto: hisilicon/debugfs - mask the unnecessary info from the dump")
Cc: <stable@vger.kernel.org>
Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/debugfs.c

index 1b9b7bccdeff0864643b1779b5a2071e26f57562..45e130b901eb5e7ae4605459ce54e624f0fece49 100644 (file)
@@ -192,7 +192,7 @@ static int qm_sqc_dump(struct hisi_qm *qm, char *s, char *name)
 
        down_read(&qm->qps_lock);
        if (qm->sqc) {
-               memcpy(&sqc, qm->sqc + qp_id * sizeof(struct qm_sqc), sizeof(struct qm_sqc));
+               memcpy(&sqc, qm->sqc + qp_id, sizeof(struct qm_sqc));
                sqc.base_h = cpu_to_le32(QM_XQC_ADDR_MASK);
                sqc.base_l = cpu_to_le32(QM_XQC_ADDR_MASK);
                dump_show(qm, &sqc, sizeof(struct qm_sqc), "SOFT SQC");
@@ -229,7 +229,7 @@ static int qm_cqc_dump(struct hisi_qm *qm, char *s, char *name)
 
        down_read(&qm->qps_lock);
        if (qm->cqc) {
-               memcpy(&cqc, qm->cqc + qp_id * sizeof(struct qm_cqc), sizeof(struct qm_cqc));
+               memcpy(&cqc, qm->cqc + qp_id, sizeof(struct qm_cqc));
                cqc.base_h = cpu_to_le32(QM_XQC_ADDR_MASK);
                cqc.base_l = cpu_to_le32(QM_XQC_ADDR_MASK);
                dump_show(qm, &cqc, sizeof(struct qm_cqc), "SOFT CQC");