numam-dpdk/drivers/net/tap
Ferruh Yigit a625ab89df net/tap: fix build with GCC 11
Reproduced with '--buildtype=debugoptimized' config,
compiler version: gcc (GCC) 12.0.0 20210509 (experimental)

There are multiple build errors, like:
In file included from ../drivers/net/tap/tap_flow.c:13:
In function ‘rte_jhash_2hashes’,
    inlined from ‘rte_jhash’ at ../lib/hash/rte_jhash.h:284:2,
    inlined from ‘tap_flow_set_handle’ at
	../drivers/net/tap/tap_flow.c:1306:12,
    inlined from ‘rss_enable’ at ../drivers/net/tap/tap_flow.c:1909:3,
    inlined from ‘priv_flow_process’ at
	../drivers/net/tap/tap_flow.c:1228:11:
../lib/hash/rte_jhash.h:238:9:
	warning: ‘flow’ may be used uninitialized [-Wmaybe-uninitialized]
  238 |         __rte_jhash_2hashes(key, length, pc, pb, 1);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../drivers/net/tap/tap_flow.c: In function ‘priv_flow_process’:
../lib/hash/rte_jhash.h:81:1: note: by argument 1 of type ‘const void *’
	to ‘__rte_jhash_2hashes.constprop’ declared here
 81 | __rte_jhash_2hashes(const void *key, uint32_t length, uint32_t *pc,
    | ^~~~~~~~~~~~~~~~~~~
../drivers/net/tap/tap_flow.c:1028:1: note: ‘flow’ declared here
 1028 | priv_flow_process(struct pmd_internals *pmd,
      | ^~~~~~~~~~~~~~~~~

Fix strict aliasing rule by using union.

Bugzilla ID: 690
Fixes: de96fe68ae ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
2021-05-12 14:54:16 +02:00
..
meson.build drivers: change indentation in build files 2021-04-21 14:04:09 +02:00
rte_eth_tap.c log: register with standardized names 2021-05-11 15:17:55 +02:00
rte_eth_tap.h ethdev: make driver-only headers private 2021-01-29 20:59:09 +01:00
tap_bpf_api.c align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
tap_bpf_insns.h add missing static keyword to globals 2018-10-29 02:01:08 +01:00
tap_bpf_program.c replace packed attributes 2020-04-16 18:16:46 +02:00
tap_bpf.h replace alignment attributes 2020-04-16 18:16:18 +02:00
tap_flow.c net/tap: fix build with GCC 11 2021-05-12 14:54:16 +02:00
tap_flow.h ethdev: replace callback getting filter operations 2021-03-26 18:37:13 +01:00
tap_intr.c net/tap: fix interrupt vector array size 2021-04-26 17:30:42 +02:00
tap_log.h net/tap: convert to dynamic logging 2018-04-27 18:00:59 +01:00
tap_netlink.c net/tap: fix build for glibc < 2.24 2020-05-11 22:27:39 +02:00
tap_netlink.h align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
tap_rss.h replace packed attributes 2020-04-16 18:16:46 +02:00
tap_tcmsgs.c net/tap: fix possible uninitialized variable access 2018-12-21 16:22:41 +01:00
tap_tcmsgs.h align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
version.map build: remove library name from version map file name 2020-10-19 22:13:59 +02:00