node: fix arm64 build with old gcc
authorNithin Dabilpuram <ndabilpuram@marvell.com>
Wed, 13 May 2020 12:06:04 +0000 (17:36 +0530)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 13 May 2020 13:38:50 +0000 (15:38 +0200)
Older GCC(~4) complains about uninitialized 'dip'
var though all the lanes of the vec register are set.
Hence this patch explicitly initializes vec register
to fix the issue.

In file included from ip4_lookup.c:34:0:
ip4_lookup_neon.h: n function ‘ip4_lookup_node_process’: \
ip4_lookup_neon.h:25:12: error: ‘dip’ may be used uninitialized in \
this function [-Werror=maybe-uninitialized]
  int32x4_t dip;
            ^

Fixes: 16df6a2c6671 ("node: add IPv4 lookup for arm64")

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
lib/librte_node/ip4_lookup_neon.h

index bb3150f..dd21cb2 100644 (file)
@@ -45,6 +45,7 @@ ip4_lookup_node_process(struct rte_graph *graph, struct rte_node *node,
                rte_prefetch0(rte_pktmbuf_mtod_offset(pkts[i], void *,
                                                sizeof(struct rte_ether_hdr)));
 
+       dip = vdupq_n_s32(0);
        /* Get stream for the speculated next node */
        to_next = rte_node_next_stream_get(graph, node, next_index, nb_objs);
        while (n_left_from >= 4) {