Hi Kevin, > gcc 10.0.1 reports: > > ../examples/ipsec-secgw/ipsec_process.c: In function ‘ipsec_process’: > ../examples/ipsec-secgw/ipsec_process.c:132:34: > error: ‘grp.m’ may be used uninitialized in this function > [-Werror=maybe-uninitialized] > 132 | grp[n].cnt = pkts + i - grp[n].m; > | ~~~~~~^~ > > Fix by initializing the array. > > Fixes: 3e5f4625dc17 ("examples/ipsec-secgw: make data-path to use IPsec > library") > Cc: sta...@dpdk.org > > Signed-off-by: Kevin Traynor <ktray...@redhat.com> > --- > note, commit log violates line length but I didn't want to split warning msg. > > Cc: konstantin.anan...@intel.com > Cc: Radu Nicolau <radu.nico...@intel.com> > Cc: Akhil Goyal <akhil.go...@nxp.com> > --- > examples/ipsec-secgw/ipsec_process.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/examples/ipsec-secgw/ipsec_process.c > b/examples/ipsec-secgw/ipsec_process.c > index bb2f2b82d..0032c5c08 100644 > --- a/examples/ipsec-secgw/ipsec_process.c > +++ b/examples/ipsec-secgw/ipsec_process.c > @@ -287,5 +287,5 @@ ipsec_process(struct ipsec_ctx *ctx, struct ipsec_traffic > *trf) > struct rte_ipsec_group *pg; > struct rte_ipsec_session *ips; > - struct rte_ipsec_group grp[RTE_DIM(trf->ipsec.pkts)]; > + struct rte_ipsec_group grp[RTE_DIM(trf->ipsec.pkts)] = {};
Wouldn't that force to generate an extra instructions to zero-out a chunk of memory, grp pointitg to? Considering that this is perf critical pass, that's probably not a best thing. If disabling compiler warning, is not an option, then probably something like code below would help? Konstantin diff --git a/examples/ipsec-secgw/ipsec_process.c b/examples/ipsec-secgw/ipsec_process.c index bb2f2b82d..6d3a3c9a1 100644 --- a/examples/ipsec-secgw/ipsec_process.c +++ b/examples/ipsec-secgw/ipsec_process.c @@ -126,6 +126,7 @@ sa_group(void *sa_ptr[], struct rte_mbuf *pkts[], void * const nosa = &spi; sa = nosa; + grp[0].m = pkts; for (i = 0, n = 0; i != num; i++) { if (sa != sa_ptr[i]) {