* [dpdk-stable] [PATCH 1/3] test/crypto: fix stat test
[not found] <20200831085145.184179-1-ruifeng.wang@arm.com>
@ 2020-08-31 8:51 ` Ruifeng Wang
2020-09-01 9:46 ` [dpdk-stable] [dpdk-dev] " Dybkowski, AdamX
2020-08-31 8:51 ` [dpdk-stable] [PATCH 2/3] crypto/armv8: fix mempool object returning Ruifeng Wang
1 sibling, 1 reply; 3+ messages in thread
From: Ruifeng Wang @ 2020-08-31 8:51 UTC (permalink / raw)
To: Declan Doherty, Fiona Trahe, John Griffin, Des O Dea,
Sergio Gonzalez Monroy
Cc: dev, akhil.goyal, honnappa.nagarahalli, nd, Ruifeng Wang, stable
ut_setup / ut_teardown are invoked for each test case by test framework.
The call inside test_stats is unnecessary and even incorrect.
This caused double free of objects such as crypto operation structure.
Trapped the issue when RTE_LIBRTE_MEMPOOL_DEBUG was enabled.
Fix issue by removing ut_setup / ut_teardown from test case implementation.
Fixes: 202d375c60bc ("app/test: add cryptodev unit and performance tests")
Cc: declan.doherty@intel.com
Cc: stable@dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
app/test/test_cryptodev.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 70bf6fe2c..068b8c9c1 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -9326,9 +9326,7 @@ test_stats(void)
"rte_cryptodev_stats_get invalid Param failed");
/* Test expected values */
- ut_setup();
test_AES_CBC_HMAC_SHA1_encrypt_digest();
- ut_teardown();
TEST_ASSERT_SUCCESS(rte_cryptodev_stats_get(ts_params->valid_devs[0],
&stats),
"rte_cryptodev_stats_get failed");
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [dpdk-stable] [PATCH 2/3] crypto/armv8: fix mempool object returning
[not found] <20200831085145.184179-1-ruifeng.wang@arm.com>
2020-08-31 8:51 ` [dpdk-stable] [PATCH 1/3] test/crypto: fix stat test Ruifeng Wang
@ 2020-08-31 8:51 ` Ruifeng Wang
1 sibling, 0 replies; 3+ messages in thread
From: Ruifeng Wang @ 2020-08-31 8:51 UTC (permalink / raw)
To: Ruifeng Wang, Akhil Goyal, Slawomir Mrozowicz, Pablo de Lara,
Declan Doherty, Fiona Trahe, Fan Zhang
Cc: dev, honnappa.nagarahalli, nd, stable
Crypto session and device session private data were put back
to wrong pools.
This caused data corruption when the object was reallocated and used.
Because objects from different mempools have different element size,
and wrong mempool info caused out of bound write.
Fix the issue by putting back objects to correct mempools.
Fixes: b3bbd9e5f265 ("cryptodev: support device independent sessions")
Fixes: 725d2a7fbf71 ("cryptodev: change queue pair configure structure")
Cc: stable@dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
drivers/crypto/armv8/rte_armv8_pmd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c
index c95729db5..72d29ae0c 100644
--- a/drivers/crypto/armv8/rte_armv8_pmd.c
+++ b/drivers/crypto/armv8/rte_armv8_pmd.c
@@ -674,8 +674,8 @@ process_op(struct armv8_crypto_qp *qp, struct rte_crypto_op *op,
memset(op->sym->session, 0,
rte_cryptodev_sym_get_existing_header_session_size(
op->sym->session));
- rte_mempool_put(qp->sess_mp, sess);
- rte_mempool_put(qp->sess_mp_priv, op->sym->session);
+ rte_mempool_put(qp->sess_mp_priv, sess);
+ rte_mempool_put(qp->sess_mp, op->sym->session);
op->sym->session = NULL;
}
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread