[dpdk-dev] [PATCH v2] app/test: fix to prevent zcd gcc compile error

Conor Walsh conor.walsh at intel.com
Tue Nov 10 12:03:13 CET 2020


When DPDK is compiled with gcc < 9 with the optimization level set to 1
gcc sees zcd in test_ring.h as possibly being uninitialised. To correct
this error if statements from _st_ring_dequeue_bulk and
_st_ring_enqueue_bulk were corrected within test_ring_mt_peek_stress_zc.c

Signed-off-by: Conor Walsh <conor.walsh at intel.com>

---

v2: Moved from initialising zcd to changing if statements within
    test_ring_mt_peek_stress_zc.c following list feedback as the
    original method used may have masked errors within the library.
---
 app/test/test_ring_mt_peek_stress_zc.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/app/test/test_ring_mt_peek_stress_zc.c b/app/test/test_ring_mt_peek_stress_zc.c
index 7e0bd511a7..85f0262ba0 100644
--- a/app/test/test_ring_mt_peek_stress_zc.c
+++ b/app/test/test_ring_mt_peek_stress_zc.c
@@ -14,8 +14,7 @@ _st_ring_dequeue_bulk(struct rte_ring *r, void **obj, uint32_t n,
 	struct rte_ring_zc_data zcd;
 
 	m = rte_ring_dequeue_zc_bulk_start(r, n, &zcd, avail);
-	n = (m == n) ? n : 0;
-	if (n != 0) {
+	if (m != 0) {
 		/* Copy the data from the ring */
 		test_ring_copy_from(&zcd, obj, -1, n);
 		rte_ring_dequeue_zc_finish(r, n);
@@ -32,8 +31,7 @@ _st_ring_enqueue_bulk(struct rte_ring *r, void * const *obj, uint32_t n,
 	struct rte_ring_zc_data zcd;
 
 	m = rte_ring_enqueue_zc_bulk_start(r, n, &zcd, free);
-	n = (m == n) ? n : 0;
-	if (n != 0) {
+	if (m != 0) {
 		/* Copy the data from the ring */
 		test_ring_copy_to(&zcd, obj, -1, n);
 		rte_ring_enqueue_zc_finish(r, n);
-- 
2.25.1



More information about the dev mailing list