Skip to content

Commit f09f489

Browse files
committed
crypto: octeontx2 - Rework how engine group number is obtained
JIRA: https://issues.redhat.com/browse/RHEL-122026 Upstream Status: merged into the linux.git commit fbfe4f4 Author: Amit Singh Tomar <amitsinght@marvell.com> Date: Wed May 28 20:29:40 2025 +0530 crypto: octeontx2 - Rework how engine group number is obtained By default, otx2_cpt_get_kcrypto_eng_grp_num() returns the engine group number of SE engine type. Add an engine type parameter to support retrieving the engine group number for different engine types. Since otx2_cpt_get_kcrypto_eng_grp_num() always returns the kernel crypto engine group number, rename it to otx2_cpt_get_eng_grp_num(). Signed-off-by: Amit Singh Tomar <amitsinght@marvell.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Vladis Dronov <vdronov@redhat.com>
1 parent d8c84f0 commit f09f489

File tree

6 files changed

+28
-13
lines changed

6 files changed

+28
-13
lines changed

drivers/crypto/marvell/octeontx2/otx2_cpt_reqmgr.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ struct otx2_cptlf_wqe;
555555
int otx2_cpt_do_request(struct pci_dev *pdev, struct otx2_cpt_req_info *req,
556556
int cpu_num);
557557
void otx2_cpt_post_process(struct otx2_cptlf_wqe *wqe);
558-
int otx2_cpt_get_kcrypto_eng_grp_num(struct pci_dev *pdev);
558+
int otx2_cpt_get_eng_grp_num(struct pci_dev *pdev,
559+
enum otx2_cpt_eng_type);
559560

560561
#endif /* __OTX2_CPT_REQMGR_H */

drivers/crypto/marvell/octeontx2/otx2_cptlf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ struct otx2_cptlfs_info {
124124
struct cpt_hw_ops *ops;
125125
u8 are_lfs_attached; /* Whether CPT LFs are attached */
126126
u8 lfs_num; /* Number of CPT LFs */
127-
u8 kcrypto_eng_grp_num; /* Kernel crypto engine group number */
127+
u8 kcrypto_se_eng_grp_num; /* Crypto symmetric engine group number */
128128
u8 kvf_limits; /* Kernel crypto limits */
129129
atomic_t state; /* LF's state. started/reset */
130130
int blkaddr; /* CPT blkaddr: BLKADDR_CPT0/BLKADDR_CPT1 */

drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,8 @@ static inline int cpt_enc_dec(struct skcipher_request *req, u32 enc)
384384
req_info->req_type = OTX2_CPT_ENC_DEC_REQ;
385385
req_info->is_enc = enc;
386386
req_info->is_trunc_hmac = false;
387-
req_info->ctrl.s.grp = otx2_cpt_get_kcrypto_eng_grp_num(pdev);
387+
req_info->ctrl.s.grp = otx2_cpt_get_eng_grp_num(pdev,
388+
OTX2_CPT_SE_TYPES);
388389

389390
req_info->req.cptr = ctx->er_ctx.hw_ctx;
390391
req_info->req.cptr_dma = ctx->er_ctx.cptr_dma;
@@ -1288,7 +1289,8 @@ static int cpt_aead_enc_dec(struct aead_request *req, u8 reg_type, u8 enc)
12881289
if (status)
12891290
return status;
12901291

1291-
req_info->ctrl.s.grp = otx2_cpt_get_kcrypto_eng_grp_num(pdev);
1292+
req_info->ctrl.s.grp = otx2_cpt_get_eng_grp_num(pdev,
1293+
OTX2_CPT_SE_TYPES);
12921294

12931295
/*
12941296
* We perform an asynchronous send and once

drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -265,17 +265,18 @@ static int cptvf_lf_init(struct otx2_cptvf_dev *cptvf)
265265
u8 eng_grp_msk;
266266

267267
/* Get engine group number for symmetric crypto */
268-
cptvf->lfs.kcrypto_eng_grp_num = OTX2_CPT_INVALID_CRYPTO_ENG_GRP;
268+
cptvf->lfs.kcrypto_se_eng_grp_num = OTX2_CPT_INVALID_CRYPTO_ENG_GRP;
269269
ret = otx2_cptvf_send_eng_grp_num_msg(cptvf, OTX2_CPT_SE_TYPES);
270270
if (ret)
271271
return ret;
272272

273-
if (cptvf->lfs.kcrypto_eng_grp_num == OTX2_CPT_INVALID_CRYPTO_ENG_GRP) {
274-
dev_err(dev, "Engine group for kernel crypto not available\n");
275-
ret = -ENOENT;
276-
return ret;
273+
if (cptvf->lfs.kcrypto_se_eng_grp_num ==
274+
OTX2_CPT_INVALID_CRYPTO_ENG_GRP) {
275+
dev_err(dev,
276+
"Symmetric Engine group for crypto not available\n");
277+
return -ENOENT;
277278
}
278-
eng_grp_msk = 1 << cptvf->lfs.kcrypto_eng_grp_num;
279+
eng_grp_msk = 1 << cptvf->lfs.kcrypto_se_eng_grp_num;
279280

280281
ret = otx2_cptvf_send_kvf_limits_msg(cptvf);
281282
if (ret)

drivers/crypto/marvell/octeontx2/otx2_cptvf_mbox.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ static void process_pfvf_mbox_mbox_msg(struct otx2_cptvf_dev *cptvf,
7575
struct otx2_cpt_caps_rsp *eng_caps;
7676
struct cpt_rd_wr_reg_msg *rsp_reg;
7777
struct msix_offset_rsp *rsp_msix;
78+
u8 grp_num;
7879
int i;
7980

8081
if (msg->id >= MBOX_MSG_MAX) {
@@ -122,7 +123,9 @@ static void process_pfvf_mbox_mbox_msg(struct otx2_cptvf_dev *cptvf,
122123
break;
123124
case MBOX_MSG_GET_ENG_GRP_NUM:
124125
rsp_grp = (struct otx2_cpt_egrp_num_rsp *) msg;
125-
cptvf->lfs.kcrypto_eng_grp_num = rsp_grp->eng_grp_num;
126+
grp_num = rsp_grp->eng_grp_num;
127+
if (rsp_grp->eng_type == OTX2_CPT_SE_TYPES)
128+
cptvf->lfs.kcrypto_se_eng_grp_num = grp_num;
126129
break;
127130
case MBOX_MSG_GET_KVF_LIMITS:
128131
rsp_limits = (struct otx2_cpt_kvf_limits_rsp *) msg;

drivers/crypto/marvell/octeontx2/otx2_cptvf_reqmgr.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,9 +391,17 @@ void otx2_cpt_post_process(struct otx2_cptlf_wqe *wqe)
391391
&wqe->lfs->lf[wqe->lf_num].pqueue);
392392
}
393393

394-
int otx2_cpt_get_kcrypto_eng_grp_num(struct pci_dev *pdev)
394+
int otx2_cpt_get_eng_grp_num(struct pci_dev *pdev,
395+
enum otx2_cpt_eng_type eng_type)
395396
{
396397
struct otx2_cptvf_dev *cptvf = pci_get_drvdata(pdev);
397398

398-
return cptvf->lfs.kcrypto_eng_grp_num;
399+
switch (eng_type) {
400+
case OTX2_CPT_SE_TYPES:
401+
return cptvf->lfs.kcrypto_se_eng_grp_num;
402+
default:
403+
dev_err(&cptvf->pdev->dev, "Unsupported engine type");
404+
break;
405+
}
406+
return -ENXIO;
399407
}

0 commit comments

Comments
 (0)