From: Adam Dybkowski Date: Mon, 8 Jun 2020 13:15:03 +0000 (+0200) Subject: crypto/qat: verify session IOVA X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=b9e3ac6964742e3a028e7a0bdca9e27f68cef4f9;p=dpdk.git crypto/qat: verify session IOVA This patch adds the verification of the crypto session IOVA that should be known (not zero) to proceed with the session initialisation. In case of unknown IOVA the error code -EINVAL is returned. Signed-off-by: Adam Dybkowski Acked-by: Fiona Trahe --- diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 58bdbd3438..11b459ee82 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -537,8 +537,16 @@ qat_sym_session_set_parameters(struct rte_cryptodev *dev, int ret; int qat_cmd_id; + /* Verify the session physical address is known */ + rte_iova_t session_paddr = rte_mempool_virt2iova(session); + if (session_paddr == 0 || session_paddr == RTE_BAD_IOVA) { + QAT_LOG(ERR, + "Session physical address unknown. Bad memory pool."); + return -EINVAL; + } + /* Set context descriptor physical address */ - session->cd_paddr = rte_mempool_virt2iova(session) + + session->cd_paddr = session_paddr + offsetof(struct qat_sym_session, cd); session->min_qat_dev_gen = QAT_GEN1;