patch 'test/ipsec: fix build with GCC 12' has been queued to stable release 21.11.2

Kevin Traynor ktraynor at redhat.com
Fri Jun 24 17:01:21 CEST 2022


Hi,

FYI, your patch has been queued to stable release 21.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/22. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/9445fcf1388068915ae4c0cebbac527482b39215

Thanks.

Kevin

---
>From 9445fcf1388068915ae4c0cebbac527482b39215 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand at redhat.com>
Date: Thu, 16 Jun 2022 11:33:20 +0200
Subject: [PATCH] test/ipsec: fix build with GCC 12
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 6e108b6a7c0c0699e6304f7b5706736b34d32607 ]

GCC 12 raises the following warning:

In function ‘_mm256_loadu_si256’,
    inlined from ‘rte_mov32’ at
        ../lib/eal/x86/include/rte_memcpy.h:319:9,
    inlined from ‘rte_mov128’ at
        ../lib/eal/x86/include/rte_memcpy.h:344:2,
    inlined from ‘rte_memcpy_generic’ at
        ../lib/eal/x86/include/rte_memcpy.h:438:4,
    inlined from ‘rte_memcpy’ at
        ../lib/eal/x86/include/rte_memcpy.h:882:10,
    inlined from ‘setup_test_string.constprop’ at
        ../app/test/test_ipsec.c:572:4:
/usr/lib/gcc/x86_64-redhat-linux/12/include/avxintrin.h:929:10: error:
    array subscript ‘__m256i_u[3]’ is partly outside array bounds of
    ‘const char[108]’ [-Werror=array-bounds]
  929 |   return *__P;
      |          ^~~~
../app/test/test_ipsec.c: In function ‘setup_test_string.constprop’:
../app/test/test_ipsec.c:539:12: note: at offset 96 into object
    ‘null_plain_data’ of size 108
  539 | const char null_plain_data[] =
      |            ^~~~~~~~~~~~~~~

Add a hint so that the compiler understands the copied data is within
the passed string boundaries.

Bugzilla ID: 848
Fixes: 05fe65eb66b2 ("test/ipsec: introduce functional test")

Signed-off-by: David Marchand <david.marchand at redhat.com>
---
 app/test/test_ipsec.c | 35 ++++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/app/test/test_ipsec.c b/app/test/test_ipsec.c
index bc2a3dbc2e..3c6dcdc604 100644
--- a/app/test/test_ipsec.c
+++ b/app/test/test_ipsec.c
@@ -544,10 +544,12 @@ struct rte_ipv4_hdr ipv4_outer  = {
 
 static struct rte_mbuf *
-setup_test_string(struct rte_mempool *mpool,
-		const char *string, size_t len, uint8_t blocksize)
+setup_test_string(struct rte_mempool *mpool, const char *string,
+	size_t string_len, size_t len, uint8_t blocksize)
 {
 	struct rte_mbuf *m = rte_pktmbuf_alloc(mpool);
 	size_t t_len = len - (blocksize ? (len % blocksize) : 0);
 
+	RTE_VERIFY(len <= string_len);
+
 	if (m) {
 		memset(m->buf_addr, 0, m->buf_len);
@@ -1355,5 +1357,6 @@ test_ipsec_crypto_outb_burst_null_null(int i)
 	for (j = 0; j < num_pkts && rc == 0; j++) {
 		ut_params->ibuf[j] = setup_test_string(ts_params->mbuf_pool,
-			null_plain_data, test_cfg[i].pkt_sz, 0);
+			null_plain_data, sizeof(null_plain_data),
+			test_cfg[i].pkt_sz, 0);
 		if (ut_params->ibuf[j] == NULL)
 			rc = TEST_FAILED;
@@ -1473,5 +1476,6 @@ test_ipsec_inline_crypto_inb_burst_null_null(int i)
 			ut_params->obuf[j] = setup_test_string(
 				ts_params->mbuf_pool,
-				null_plain_data, test_cfg[i].pkt_sz, 0);
+				null_plain_data, sizeof(null_plain_data),
+				test_cfg[i].pkt_sz, 0);
 			if (ut_params->obuf[j] == NULL)
 				rc = TEST_FAILED;
@@ -1541,7 +1545,7 @@ test_ipsec_inline_proto_inb_burst_null_null(int i)
 	/* Generate inbound mbuf data */
 	for (j = 0; j < num_pkts && rc == 0; j++) {
-		ut_params->ibuf[j] = setup_test_string(
-			ts_params->mbuf_pool,
-			null_plain_data, test_cfg[i].pkt_sz, 0);
+		ut_params->ibuf[j] = setup_test_string(ts_params->mbuf_pool,
+			null_plain_data, sizeof(null_plain_data),
+			test_cfg[i].pkt_sz, 0);
 		if (ut_params->ibuf[j] == NULL)
 			rc = TEST_FAILED;
@@ -1550,5 +1554,6 @@ test_ipsec_inline_proto_inb_burst_null_null(int i)
 			ut_params->obuf[j] = setup_test_string(
 				ts_params->mbuf_pool,
-				null_plain_data, test_cfg[i].pkt_sz, 0);
+				null_plain_data, sizeof(null_plain_data),
+				test_cfg[i].pkt_sz, 0);
 			if (ut_params->obuf[j] == NULL)
 				rc = TEST_FAILED;
@@ -1650,5 +1655,6 @@ test_ipsec_inline_crypto_outb_burst_null_null(int i)
 	for (j = 0; j < num_pkts && rc == 0; j++) {
 		ut_params->ibuf[j] = setup_test_string(ts_params->mbuf_pool,
-			null_plain_data, test_cfg[i].pkt_sz, 0);
+			null_plain_data, sizeof(null_plain_data),
+			test_cfg[i].pkt_sz, 0);
 		if (ut_params->ibuf[0] == NULL)
 			rc = TEST_FAILED;
@@ -1728,5 +1734,6 @@ test_ipsec_inline_proto_outb_burst_null_null(int i)
 	for (j = 0; j < num_pkts && rc == 0; j++) {
 		ut_params->ibuf[j] = setup_test_string(ts_params->mbuf_pool,
-			null_plain_data, test_cfg[i].pkt_sz, 0);
+			null_plain_data, sizeof(null_plain_data),
+			test_cfg[i].pkt_sz, 0);
 		if (ut_params->ibuf[0] == NULL)
 			rc = TEST_FAILED;
@@ -1735,6 +1742,7 @@ test_ipsec_inline_proto_outb_burst_null_null(int i)
 			/* Generate test tunneled mbuf data for comparison */
 			ut_params->obuf[j] = setup_test_string(
-					ts_params->mbuf_pool,
-					null_plain_data, test_cfg[i].pkt_sz, 0);
+				ts_params->mbuf_pool, null_plain_data,
+				sizeof(null_plain_data), test_cfg[i].pkt_sz,
+				0);
 			if (ut_params->obuf[j] == NULL)
 				rc = TEST_FAILED;
@@ -1805,5 +1813,6 @@ test_ipsec_lksd_proto_inb_burst_null_null(int i)
 		/* packet with sequence number 0 is invalid */
 		ut_params->ibuf[j] = setup_test_string(ts_params->mbuf_pool,
-			null_encrypted_data, test_cfg[i].pkt_sz, 0);
+			null_encrypted_data, sizeof(null_encrypted_data),
+			test_cfg[i].pkt_sz, 0);
 		if (ut_params->ibuf[j] == NULL)
 			rc = TEST_FAILED;
-- 
2.34.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-06-24 15:51:09.347085849 +0100
+++ 0013-test-ipsec-fix-build-with-GCC-12.patch	2022-06-24 15:51:08.860984052 +0100
@@ -1 +1 @@
-From 6e108b6a7c0c0699e6304f7b5706736b34d32607 Mon Sep 17 00:00:00 2001
+From 9445fcf1388068915ae4c0cebbac527482b39215 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 6e108b6a7c0c0699e6304f7b5706736b34d32607 ]
+
@@ -38 +39,0 @@
-Cc: stable at dpdk.org
@@ -46 +47 @@
-index 8da025bf66..7047e17960 100644
+index bc2a3dbc2e..3c6dcdc604 100644
@@ -49 +50 @@
-@@ -555,10 +555,12 @@ struct rte_ipv4_hdr ipv4_outer  = {
+@@ -544,10 +544,12 @@ struct rte_ipv4_hdr ipv4_outer  = {
@@ -64 +65 @@
-@@ -1366,5 +1368,6 @@ test_ipsec_crypto_outb_burst_null_null(int i)
+@@ -1355,5 +1357,6 @@ test_ipsec_crypto_outb_burst_null_null(int i)
@@ -72 +73 @@
-@@ -1484,5 +1487,6 @@ test_ipsec_inline_crypto_inb_burst_null_null(int i)
+@@ -1473,5 +1476,6 @@ test_ipsec_inline_crypto_inb_burst_null_null(int i)
@@ -80 +81 @@
-@@ -1552,7 +1556,7 @@ test_ipsec_inline_proto_inb_burst_null_null(int i)
+@@ -1541,7 +1545,7 @@ test_ipsec_inline_proto_inb_burst_null_null(int i)
@@ -91 +92 @@
-@@ -1561,5 +1565,6 @@ test_ipsec_inline_proto_inb_burst_null_null(int i)
+@@ -1550,5 +1554,6 @@ test_ipsec_inline_proto_inb_burst_null_null(int i)
@@ -99 +100 @@
-@@ -1661,5 +1666,6 @@ test_ipsec_inline_crypto_outb_burst_null_null(int i)
+@@ -1650,5 +1655,6 @@ test_ipsec_inline_crypto_outb_burst_null_null(int i)
@@ -107 +108 @@
-@@ -1739,5 +1745,6 @@ test_ipsec_inline_proto_outb_burst_null_null(int i)
+@@ -1728,5 +1734,6 @@ test_ipsec_inline_proto_outb_burst_null_null(int i)
@@ -115 +116 @@
-@@ -1746,6 +1753,7 @@ test_ipsec_inline_proto_outb_burst_null_null(int i)
+@@ -1735,6 +1742,7 @@ test_ipsec_inline_proto_outb_burst_null_null(int i)
@@ -125 +126 @@
-@@ -1816,5 +1824,6 @@ test_ipsec_lksd_proto_inb_burst_null_null(int i)
+@@ -1805,5 +1813,6 @@ test_ipsec_lksd_proto_inb_burst_null_null(int i)



More information about the stable mailing list