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 <adamx.dybkowski@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
This commit is contained in:
Adam Dybkowski 2020-06-08 15:15:03 +02:00 committed by Akhil Goyal
parent 53bf0ffd51
commit b9e3ac6964

View File

@ -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;