Message ID | 1554720537-14959-1-git-send-email-bernard.iremonger@intel.com |
---|---|
State | Rejected, archived |
Delegated to: | akhil goyal |
Headers | show |
Series |
|
Related | show |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
ci/intel-Performance-Testing | success | Performance Testing PASS |
ci/mellanox-Performance-Testing | success | Performance Testing PASS |
Hi Bernard, > > While running the IPsec unit test program the following > segmentation fault is occurring: > > Thread 1 "test" received signal SIGSEGV, Segmentation fault. > 0x0000000000beaece in qat_sym_build_request(in_op=0x0, > out_msg=0x100450580 "", op_cookie=0x101c6fd80, qat_dev_gen=QAT_GEN1) > at /root/dpdk_ipsec_master-1/drivers/crypto/qat/qat_sym.c:165 > 165 if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > > Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented") > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> > --- > drivers/crypto/qat/qat_sym.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/crypto/qat/qat_sym.c b/drivers/crypto/qat/qat_sym.c > index 8801ca5..4a7d11e 100644 > --- a/drivers/crypto/qat/qat_sym.c > +++ b/drivers/crypto/qat/qat_sym.c > @@ -162,6 +162,12 @@ qat_sym_build_request(void *in_op, uint8_t *out_msg, > struct qat_sym_op_cookie *cookie = > (struct qat_sym_op_cookie *)op_cookie; > > + if (op == NULL) { > + QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " > + "operation requests, op (%p) is NULL", op); > + return -EINVAL; > + } > + > if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " > "operation requests, op (%p) is not a " This is crypto-dev enqueue data-path, if I am not mistaken. I think in that case it is caller responsibility to make sure that ops[] contain valid crypto-ops (as in majority of other data-path functions). Suppose the main question here - why ipsec UT passes NULL as crypto-op here? Konstantin
Hi Konstantin, <snip> > Subject: RE: [PATCH] crypto/qat: fix segmentation fault in QAT PMD > > Hi Bernard, > > > > > While running the IPsec unit test program the following segmentation > > fault is occurring: > > > > Thread 1 "test" received signal SIGSEGV, Segmentation fault. > > 0x0000000000beaece in qat_sym_build_request(in_op=0x0, > > out_msg=0x100450580 "", op_cookie=0x101c6fd80, > qat_dev_gen=QAT_GEN1) > > at /root/dpdk_ipsec_master-1/drivers/crypto/qat/qat_sym.c:165 > > 165 if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > > > > Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op > > oriented") > > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> > > --- > > drivers/crypto/qat/qat_sym.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/drivers/crypto/qat/qat_sym.c > > b/drivers/crypto/qat/qat_sym.c index 8801ca5..4a7d11e 100644 > > --- a/drivers/crypto/qat/qat_sym.c > > +++ b/drivers/crypto/qat/qat_sym.c > > @@ -162,6 +162,12 @@ qat_sym_build_request(void *in_op, uint8_t > *out_msg, > > struct qat_sym_op_cookie *cookie = > > (struct qat_sym_op_cookie *)op_cookie; > > > > + if (op == NULL) { > > + QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " > > + "operation requests, op (%p) is NULL", op); > > + return -EINVAL; > > + } > > + > > if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > > QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " > > "operation requests, op (%p) is not a " > > This is crypto-dev enqueue data-path, if I am not mistaken. > I think in that case it is caller responsibility to make sure that ops[] contain valid > crypto-ops (as in majority of other data-path functions). > Suppose the main question here - why ipsec UT passes NULL as crypto-op here? > Konstantin I will investigate further. Regards, Bernard.
Hi Bernard, Konstantin, > -----Original Message----- > From: Ananyev, Konstantin > Sent: Monday, April 8, 2019 1:10 PM > To: Iremonger, Bernard <bernard.iremonger@intel.com>; dev@dpdk.org; Trahe, Fiona > <fiona.trahe@intel.com>; akhil.goyal@nxp.com > Subject: RE: [PATCH] crypto/qat: fix segmentation fault in QAT PMD > > Hi Bernard, > > > > > While running the IPsec unit test program the following > > segmentation fault is occurring: > > > > Thread 1 "test" received signal SIGSEGV, Segmentation fault. > > 0x0000000000beaece in qat_sym_build_request(in_op=0x0, > > out_msg=0x100450580 "", op_cookie=0x101c6fd80, qat_dev_gen=QAT_GEN1) > > at /root/dpdk_ipsec_master-1/drivers/crypto/qat/qat_sym.c:165 > > 165 if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > > > > Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented") > > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> > > --- > > drivers/crypto/qat/qat_sym.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/drivers/crypto/qat/qat_sym.c b/drivers/crypto/qat/qat_sym.c > > index 8801ca5..4a7d11e 100644 > > --- a/drivers/crypto/qat/qat_sym.c > > +++ b/drivers/crypto/qat/qat_sym.c > > @@ -162,6 +162,12 @@ qat_sym_build_request(void *in_op, uint8_t *out_msg, > > struct qat_sym_op_cookie *cookie = > > (struct qat_sym_op_cookie *)op_cookie; > > > > + if (op == NULL) { > > + QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " > > + "operation requests, op (%p) is NULL", op); > > + return -EINVAL; > > + } > > + > > if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > > QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " > > "operation requests, op (%p) is not a " > > This is crypto-dev enqueue data-path, if I am not mistaken. > I think in that case it is caller responsibility to make sure that ops[] contain valid crypto-ops > (as in majority of other data-path functions). > Suppose the main question here - why ipsec UT passes NULL as crypto-op here? > Konstantin [Fiona] Agree with Konstantin - it's the data-path - we expect a valid op ptr. Can the real issue be related to the recent addition of asymmetric QAT PMD? Not all QAT PMDs support symmetric crypto now. Is IPSec unit test finding a QAT asymm PMD and not checking it's capabilities or checking but not handling the result well and following a path that passes a NULL op to it?
Hi Fiona, <snip> > > Subject: RE: [PATCH] crypto/qat: fix segmentation fault in QAT PMD > > > > Hi Bernard, > > > > > > > > While running the IPsec unit test program the following segmentation > > > fault is occurring: > > > > > > Thread 1 "test" received signal SIGSEGV, Segmentation fault. > > > 0x0000000000beaece in qat_sym_build_request(in_op=0x0, > > > out_msg=0x100450580 "", op_cookie=0x101c6fd80, > qat_dev_gen=QAT_GEN1) > > > at /root/dpdk_ipsec_master-1/drivers/crypto/qat/qat_sym.c:165 > > > 165 if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > > > > > > Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op > > > oriented") > > > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> > > > --- > > > drivers/crypto/qat/qat_sym.c | 6 ++++++ > > > 1 file changed, 6 insertions(+) > > > > > > diff --git a/drivers/crypto/qat/qat_sym.c > > > b/drivers/crypto/qat/qat_sym.c index 8801ca5..4a7d11e 100644 > > > --- a/drivers/crypto/qat/qat_sym.c > > > +++ b/drivers/crypto/qat/qat_sym.c > > > @@ -162,6 +162,12 @@ qat_sym_build_request(void *in_op, uint8_t > *out_msg, > > > struct qat_sym_op_cookie *cookie = > > > (struct qat_sym_op_cookie *)op_cookie; > > > > > > + if (op == NULL) { > > > + QAT_DP_LOG(ERR, "QAT PMD only supports symmetric > crypto " > > > + "operation requests, op (%p) is NULL", op); > > > + return -EINVAL; > > > + } > > > + > > > if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { > > > QAT_DP_LOG(ERR, "QAT PMD only supports symmetric > crypto " > > > "operation requests, op (%p) is not a " > > > > This is crypto-dev enqueue data-path, if I am not mistaken. > > I think in that case it is caller responsibility to make sure that > > ops[] contain valid crypto-ops (as in majority of other data-path functions). > > Suppose the main question here - why ipsec UT passes NULL as crypto-op > here? > > Konstantin > [Fiona] Agree with Konstantin - it's the data-path - we expect a valid op ptr. > Can the real issue be related to the recent addition of asymmetric QAT PMD? > Not all QAT PMDs support symmetric crypto now. > Is IPSec unit test finding a QAT asymm PMD and not checking it's capabilities > or checking but not handling the result well and following a path that passes a > NULL op to it? Self NAK, issue found in test_ipsec code. Regards, Bernard.
diff --git a/drivers/crypto/qat/qat_sym.c b/drivers/crypto/qat/qat_sym.c index 8801ca5..4a7d11e 100644 --- a/drivers/crypto/qat/qat_sym.c +++ b/drivers/crypto/qat/qat_sym.c @@ -162,6 +162,12 @@ qat_sym_build_request(void *in_op, uint8_t *out_msg, struct qat_sym_op_cookie *cookie = (struct qat_sym_op_cookie *)op_cookie; + if (op == NULL) { + QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " + "operation requests, op (%p) is NULL", op); + return -EINVAL; + } + if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { QAT_DP_LOG(ERR, "QAT PMD only supports symmetric crypto " "operation requests, op (%p) is not a "
While running the IPsec unit test program the following segmentation fault is occurring: Thread 1 "test" received signal SIGSEGV, Segmentation fault. 0x0000000000beaece in qat_sym_build_request(in_op=0x0, out_msg=0x100450580 "", op_cookie=0x101c6fd80, qat_dev_gen=QAT_GEN1) at /root/dpdk_ipsec_master-1/drivers/crypto/qat/qat_sym.c:165 165 if (unlikely(op->type != RTE_CRYPTO_OP_TYPE_SYMMETRIC)) { Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented") Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- drivers/crypto/qat/qat_sym.c | 6 ++++++ 1 file changed, 6 insertions(+)