From: Anoob Joseph <ano...@marvell.com> Instead of calling abort() return error code so that the caller can handle as required.
Signed-off-by: Anoob Joseph <ano...@marvell.com> --- drivers/common/cnxk/roc_cpt.c | 2 +- drivers/crypto/cnxk/cn10k_ipsec.c | 12 ++++++++++-- drivers/crypto/cnxk/cn10k_tls.c | 12 ++++++++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/common/cnxk/roc_cpt.c b/drivers/common/cnxk/roc_cpt.c index 64fa284b9a..acbf5fa9d4 100644 --- a/drivers/common/cnxk/roc_cpt.c +++ b/drivers/common/cnxk/roc_cpt.c @@ -826,7 +826,7 @@ roc_cpt_lf_ctx_flush(struct roc_cpt_lf *lf, void *cptr, bool inval) if (err.s.flush_st_flt) { plt_err("CTX flush could not complete due to store fault"); - abort(); + return -EFAULT; } return 0; diff --git a/drivers/crypto/cnxk/cn10k_ipsec.c b/drivers/crypto/cnxk/cn10k_ipsec.c index ef5f0ff4aa..7517602fa4 100644 --- a/drivers/crypto/cnxk/cn10k_ipsec.c +++ b/drivers/crypto/cnxk/cn10k_ipsec.c @@ -135,7 +135,11 @@ cn10k_ipsec_outb_sa_create(struct roc_cpt *roc_cpt, struct roc_cpt_lf *lf, } /* Trigger CTX flush so that data is written back to DRAM */ - roc_cpt_lf_ctx_flush(lf, out_sa, false); + ret = roc_cpt_lf_ctx_flush(lf, out_sa, false); + if (ret == -EFAULT) { + plt_err("Could not flush outbound session"); + goto sa_dptr_free; + } sec_sess->proto = RTE_SECURITY_PROTOCOL_IPSEC; plt_atomic_thread_fence(__ATOMIC_SEQ_CST); @@ -236,7 +240,11 @@ cn10k_ipsec_inb_sa_create(struct roc_cpt *roc_cpt, struct roc_cpt_lf *lf, } /* Trigger CTX flush so that data is written back to DRAM */ - roc_cpt_lf_ctx_flush(lf, in_sa, true); + ret = roc_cpt_lf_ctx_flush(lf, in_sa, true); + if (ret == -EFAULT) { + plt_err("Could not flush inbound session"); + goto sa_dptr_free; + } sec_sess->proto = RTE_SECURITY_PROTOCOL_IPSEC; plt_atomic_thread_fence(__ATOMIC_SEQ_CST); diff --git a/drivers/crypto/cnxk/cn10k_tls.c b/drivers/crypto/cnxk/cn10k_tls.c index 7b73a58d2a..4bd2654499 100644 --- a/drivers/crypto/cnxk/cn10k_tls.c +++ b/drivers/crypto/cnxk/cn10k_tls.c @@ -707,7 +707,11 @@ cn10k_tls_read_sa_create(struct roc_cpt *roc_cpt, struct roc_cpt_lf *lf, } /* Trigger CTX flush so that data is written back to DRAM */ - roc_cpt_lf_ctx_flush(lf, read_sa, true); + ret = roc_cpt_lf_ctx_flush(lf, read_sa, true); + if (ret == -EFAULT) { + plt_err("Could not flush TLS read session to hardware"); + goto sa_dptr_free; + } rte_atomic_thread_fence(rte_memory_order_seq_cst); @@ -796,7 +800,11 @@ cn10k_tls_write_sa_create(struct roc_cpt *roc_cpt, struct roc_cpt_lf *lf, } /* Trigger CTX flush so that data is written back to DRAM */ - roc_cpt_lf_ctx_flush(lf, write_sa, false); + ret = roc_cpt_lf_ctx_flush(lf, write_sa, false); + if (ret == -EFAULT) { + plt_err("Could not flush TLS write session to hardware"); + goto sa_dptr_free; + } rte_atomic_thread_fence(rte_memory_order_seq_cst); -- 2.25.1