This patch adds a check when dequeueing ops and processing, SGL support only exists for AES-GCM and CHACHA20_POLY1305 algorithms. If an SGL op for an unsupported algorithm is being processed, submit a NULL job instead.
Signed-off-by: Ciara Power <ciara.po...@intel.com> --- drivers/crypto/ipsec_mb/pmd_aesni_mb.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c index 606c8a0caf..9b21c14f58 100644 --- a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c +++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c @@ -1202,6 +1202,13 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp, if (op->sym->m_src->nb_segs > 1) sgl = 1; + if (sgl && (session->cipher.mode != IMB_CIPHER_GCM + && session->cipher.mode != IMB_CIPHER_CHACHA20_POLY1305)) { + op->status = RTE_CRYPTO_OP_STATUS_INVALID_ARGS; + IPSEC_MB_LOG(ERR, "Device only supports SGL for AES-GCM or CHACHA20_POLY1305 algorithms."); + return -1; + } + /* Set crypto operation */ job->chain_order = session->chain_order; -- 2.25.1