hash: fix gcc 10 maybe-uninitialized warning
authorKevin Traynor <ktraynor@redhat.com>
Fri, 15 May 2020 14:28:08 +0000 (15:28 +0100)
committerDavid Marchand <david.marchand@redhat.com>
Mon, 18 May 2020 11:54:36 +0000 (13:54 +0200)
commit572f2a90893d6ae63e01de830e4a18e27746c3e1
tree03268a8d0985790691ee601a2ec837737f19746b
parentb7aa3b5b888987aec0686a9b4b368255740c77df
hash: fix gcc 10 maybe-uninitialized warning

gcc 10.1.1 reports a warning for the ext_bkt_id variable:

../lib/librte_hash/rte_cuckoo_hash.c:
In function ‘__rte_hash_add_key_with_hash’:
../lib/librte_hash/rte_cuckoo_hash.c:1104:29:
warning: ‘ext_bkt_id’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
 1104 |  (h->buckets_ext[ext_bkt_id - 1]).sig_current[0] = short_sig;
      |                  ~~~~~~~~~~~^~~

The return value of rte_ring_sc_dequeue_elem() is already checked,
but also initialize ext_bkt_id to zero (invalid value) and check
that it also overwritten.

Fixes: fbfe568103b0 ("hash: use 32-bit elements rings to save memory")
Cc: stable@dpdk.org
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
lib/librte_hash/rte_cuckoo_hash.c