* [PATCH 00/23] examples: enable -Wshadow across all examples
@ 2026-04-07 3:49 Stephen Hemminger
2026-04-07 3:49 ` [PATCH 01/23] examples/ethtool: fix shadow variable warning Stephen Hemminger
` (24 more replies)
0 siblings, 25 replies; 51+ messages in thread
From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Several DPDK examples had -Wshadow disabled via no_shadow_cflag in
their meson.build files. This series fixes all shadow variable
warnings and removes the suppression flag, so that -Wshadow is
enabled uniformly across every example.
The fixes fall into three categories:
- Renaming function parameters or local variables that shadow
globals (most patches)
- Removing unused function parameters that duplicated globals
(dma, bond, flow_filtering, ipsec-secgw, vhost, qos_sched)
- Simply removing no_shadow_cflag where there were no warnings
(vm_power_manage, bbdev_app, l2fwd-crypto, l2fwd-event,
l3fwd-graph)
All the patches are listed as fixes they are not worth
back porting so no Fixes: tag is given.
Stephen Hemminger (23):
examples/ethtool: fix shadow variable warning
examples/eventdev_pipeline: fix shadow variable warning
examples/dma: fix shadow variable warnings
examples/packet_ordering: fix shadow variable warning
examples/bond: fix shadow variable warnings
examples/vmdq: fix shadow variable warning
examples/server_node_efd: fix shadowed variable
examples/flow_filtering: fix shadowed variables
examples/ipsec-secgw: fix shadowed variables
examples/ip_pipeline: fix shadow variable
examples/multi_process: fix shadowed variable
examples/vm_power_manage: enable shadow warnings
examples/bbdev_app: enable shadow warnings
examples/ptpclient: fix shadow variable warnings
examples/vhost: fix shadow warnings
examples/qos_sched: eliminate shadowed variables
examples/l2fwd-jobstats: fix shadowed variable
examples/l2fwd-crypto: remove no shadow flag
examples/l2fwd-event: remove no shadow flag
examples/l2fwd-keepalive: fix shadow variable warning
examples/l3fwd-graph: remove no shadow flag
examples/l3fwd: fix shadow variable warnings
examples/l3fwd-power: fix shadow variable warnings
examples/bbdev_app/meson.build | 1 -
examples/bond/main.c | 21 ++-
examples/bond/meson.build | 1 -
examples/dma/dmafwd.c | 10 +-
examples/dma/meson.build | 1 -
examples/ethtool/ethtool-app/main.c | 4 +-
examples/ethtool/meson.build | 1 -
examples/eventdev_pipeline/meson.build | 1 -
.../eventdev_pipeline/pipeline_worker_tx.c | 4 +-
examples/flow_filtering/flow_skeleton.c | 10 +-
examples/flow_filtering/main.c | 4 +-
examples/flow_filtering/meson.build | 1 -
examples/ip_pipeline/cli.c | 9 +-
examples/ip_pipeline/meson.build | 1 -
examples/ipsec-secgw/ipsec-secgw.c | 3 +-
examples/ipsec-secgw/ipsec.c | 3 +-
examples/ipsec-secgw/ipsec.h | 1 -
examples/ipsec-secgw/ipsec_worker.c | 30 ++--
examples/ipsec-secgw/ipsec_worker.h | 4 +-
examples/ipsec-secgw/meson.build | 1 -
examples/ipsec-secgw/sa.c | 34 ++---
examples/l2fwd-crypto/meson.build | 1 -
examples/l2fwd-event/meson.build | 1 -
examples/l2fwd-jobstats/main.c | 6 +-
examples/l2fwd-jobstats/meson.build | 1 -
examples/l2fwd-keepalive/main.c | 2 +-
examples/l2fwd-keepalive/meson.build | 1 -
examples/l3fwd-graph/meson.build | 1 -
examples/l3fwd-power/main.c | 12 +-
examples/l3fwd-power/meson.build | 1 -
examples/l3fwd/l3fwd.h | 2 +-
examples/l3fwd/l3fwd_em.c | 32 ++--
examples/l3fwd/l3fwd_em_hlm.h | 8 +-
examples/l3fwd/l3fwd_lpm.c | 4 +-
examples/l3fwd/l3fwd_route.h | 12 +-
examples/l3fwd/main.c | 12 +-
examples/l3fwd/meson.build | 1 -
.../client_server_mp/mp_server/args.c | 12 +-
.../client_server_mp/mp_server/meson.build | 1 -
examples/packet_ordering/main.c | 6 +-
examples/packet_ordering/meson.build | 1 -
examples/ptpclient/meson.build | 1 -
examples/ptpclient/ptpclient.c | 138 +++++++++---------
examples/qos_sched/cfg_file.c | 12 +-
examples/qos_sched/cfg_file.h | 4 +-
examples/qos_sched/init.c | 4 +-
examples/qos_sched/meson.build | 1 -
examples/server_node_efd/efd_server/args.c | 6 +-
.../server_node_efd/efd_server/meson.build | 1 -
examples/vhost/main.c | 19 +--
examples/vhost/meson.build | 1 -
.../vm_power_manager/guest_cli/meson.build | 1 -
examples/vm_power_manager/meson.build | 1 -
examples/vmdq/main.c | 8 +-
examples/vmdq/meson.build | 1 -
55 files changed, 216 insertions(+), 244 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 51+ messages in thread* [PATCH 01/23] examples/ethtool: fix shadow variable warning 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 02/23] examples/eventdev_pipeline: " Stephen Hemminger ` (23 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Fix shadow variable warning by renaming the function parameter from 'app_cfg' to 'ptr_cfg' to avoid shadowing the global variable. ../examples/ethtool/ethtool-app/main.c:89:44: warning: declaration of 'app_cfg' shadows a global declaration [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/ethtool/ethtool-app/main.c | 4 ++-- examples/ethtool/meson.build | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c index b6bbae70d2..6545eb322d 100644 --- a/examples/ethtool/ethtool-app/main.c +++ b/examples/ethtool/ethtool-app/main.c @@ -86,7 +86,7 @@ void mark_port_newmac(int idx_port) ptr_port->port_dirty = 1; } -static void setup_ports(struct app_config *app_cfg, int cnt_ports) +static void setup_ports(struct app_config *ptr_cfg, int cnt_ports) { int idx_port; int size_pktpool; @@ -101,7 +101,7 @@ static void setup_ports(struct app_config *app_cfg, int cnt_ports) cfg_port.txmode.mq_mode = RTE_ETH_MQ_TX_NONE; for (idx_port = 0; idx_port < cnt_ports; idx_port++) { - struct app_port *ptr_port = &app_cfg->ports[idx_port]; + struct app_port *ptr_port = &ptr_cfg->ports[idx_port]; ret = rte_eth_dev_info_get(idx_port, &dev_info); if (ret != 0) diff --git a/examples/ethtool/meson.build b/examples/ethtool/meson.build index 3ad948d109..d7f63d48af 100644 --- a/examples/ethtool/meson.build +++ b/examples/ethtool/meson.build @@ -17,7 +17,6 @@ sources = files( 'ethtool-app/main.c', ) includes = include_directories('lib', 'ethtool-app') -cflags += no_shadow_cflag deps += 'bus_pci' if dpdk_conf.has('RTE_NET_IXGBE') -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 02/23] examples/eventdev_pipeline: fix shadow variable warning 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger 2026-04-07 3:49 ` [PATCH 01/23] examples/ethtool: fix shadow variable warning Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 03/23] examples/dma: fix shadow variable warnings Stephen Hemminger ` (22 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Fix shadow variable warning by reusing the existing 'ret' variable instead of declaring a new one with the same name. ../examples/eventdev_pipeline/pipeline_worker_tx.c:877:25: warning: declaration of 'ret' shadows a previous local [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/eventdev_pipeline/meson.build | 1 - examples/eventdev_pipeline/pipeline_worker_tx.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/eventdev_pipeline/meson.build b/examples/eventdev_pipeline/meson.build index c317f4b3e2..b8f5cfe109 100644 --- a/examples/eventdev_pipeline/meson.build +++ b/examples/eventdev_pipeline/meson.build @@ -13,4 +13,3 @@ sources = files( 'pipeline_worker_generic.c', 'pipeline_worker_tx.c', ) -cflags += no_shadow_cflag diff --git a/examples/eventdev_pipeline/pipeline_worker_tx.c b/examples/eventdev_pipeline/pipeline_worker_tx.c index f7b7937d6a..a3090e3b49 100644 --- a/examples/eventdev_pipeline/pipeline_worker_tx.c +++ b/examples/eventdev_pipeline/pipeline_worker_tx.c @@ -874,8 +874,8 @@ init_adapters(uint16_t nb_ports) service.callback = service_rx_adapter; service.callback_userdata = (void *)adptr_services; - int32_t ret = rte_service_component_register(&service, - &fdata->rxadptr_service_id); + ret = rte_service_component_register(&service, + &fdata->rxadptr_service_id); if (ret) rte_exit(EXIT_FAILURE, "Rx adapter service register failed"); -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 03/23] examples/dma: fix shadow variable warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger 2026-04-07 3:49 ` [PATCH 01/23] examples/ethtool: fix shadow variable warning Stephen Hemminger 2026-04-07 3:49 ` [PATCH 02/23] examples/eventdev_pipeline: " Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 04/23] examples/packet_ordering: fix shadow variable warning Stephen Hemminger ` (21 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Chengwen Feng, Kevin Laatz, Bruce Richardson Fix shadow variable warnings by: - Renaming 'copy_mode' parameter to 'mode' in dma_parse_copy_mode() - Removing 'nb_queues' parameter from port_init() and using the global variable directly, since it's always called with the global nb_queues value ../examples/dma/dmafwd.c:593:33: warning: declaration of 'copy_mode' shadows a global declaration [-Wshadow] ../examples/dma/dmafwd.c:881:68: warning: declaration of 'nb_queues' shadows a global declaration [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/dma/dmafwd.c | 10 +++++----- examples/dma/meson.build | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/dma/dmafwd.c b/examples/dma/dmafwd.c index 5ba0aaa40b..a8ed09e6ae 100644 --- a/examples/dma/dmafwd.c +++ b/examples/dma/dmafwd.c @@ -590,11 +590,11 @@ dma_parse_portmask(const char *portmask) } static copy_mode_t -dma_parse_copy_mode(const char *copy_mode) +dma_parse_copy_mode(const char *mode) { - if (strcmp(copy_mode, COPY_MODE_SW) == 0) + if (strcmp(mode, COPY_MODE_SW) == 0) return COPY_MODE_SW_NUM; - else if (strcmp(copy_mode, COPY_MODE_DMA) == 0) + else if (strcmp(mode, COPY_MODE_DMA) == 0) return COPY_MODE_DMA_NUM; return COPY_MODE_INVALID_NUM; @@ -878,7 +878,7 @@ config_port_max_pkt_len(struct rte_eth_conf *conf, * coming from the mbuf_pool passed as a parameter. */ static inline void -port_init(uint16_t portid, struct rte_mempool *mbuf_pool, uint16_t nb_queues) +port_init(uint16_t portid, struct rte_mempool *mbuf_pool) { /* Configuring port to use RSS for multiple RX queues. 8< */ static const struct rte_eth_conf port_conf = { @@ -1061,7 +1061,7 @@ main(int argc, char **argv) /* Initialize each port. 8< */ cfg.nb_ports = 0; RTE_ETH_FOREACH_DEV(portid) - port_init(portid, dma_pktmbuf_pool, nb_queues); + port_init(portid, dma_pktmbuf_pool); /* >8 End of initializing each port. */ /* Initialize port xstats */ diff --git a/examples/dma/meson.build b/examples/dma/meson.build index 6a65de127e..124f9476fc 100644 --- a/examples/dma/meson.build +++ b/examples/dma/meson.build @@ -13,4 +13,3 @@ deps += ['argparse', 'dmadev'] sources = files( 'dmafwd.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 04/23] examples/packet_ordering: fix shadow variable warning 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (2 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 03/23] examples/dma: fix shadow variable warnings Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 05/23] examples/bond: fix shadow variable warnings Stephen Hemminger ` (20 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Volodymyr Fialko Fix shadow variable warning by renaming the parameter from 'portmask' to 'mask' in parse_portmask() to avoid shadowing the global variable. ../examples/packet_ordering/main.c:147:28: warning: declaration of 'portmask' shadows a global declaration [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/packet_ordering/main.c | 6 +++--- examples/packet_ordering/meson.build | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c index 748fe0826a..0279faf081 100644 --- a/examples/packet_ordering/main.c +++ b/examples/packet_ordering/main.c @@ -144,14 +144,14 @@ print_usage(const char *prgname) } static int -parse_portmask(const char *portmask) +parse_portmask(const char *mask) { unsigned long pm; char *end = NULL; /* parse hexadecimal string */ - pm = strtoul(portmask, &end, 16); - if ((portmask[0] == '\0') || (end == NULL) || (*end != '\0')) + pm = strtoul(mask, &end, 16); + if ((mask[0] == '\0') || (end == NULL) || (*end != '\0')) return 0; return pm; diff --git a/examples/packet_ordering/meson.build b/examples/packet_ordering/meson.build index 092a5258ef..f8be053fb0 100644 --- a/examples/packet_ordering/meson.build +++ b/examples/packet_ordering/meson.build @@ -11,4 +11,3 @@ deps += 'reorder' sources = files( 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 05/23] examples/bond: fix shadow variable warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (3 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 04/23] examples/packet_ordering: fix shadow variable warning Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 06/23] examples/vmdq: fix shadow variable warning Stephen Hemminger ` (19 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Chas Williams, Min Hu (Connor) Fix shadow variable warnings - remove mbuf_pool parameters since member_port_init() and bond_port_init() always called with same pool. - rename members array used in show command - make the variables static Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/bond/main.c | 21 ++++++++++----------- examples/bond/meson.build | 1 - 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/bond/main.c b/examples/bond/main.c index 4e8eeb7a5e..99359cd6fb 100644 --- a/examples/bond/main.c +++ b/examples/bond/main.c @@ -96,13 +96,12 @@ ":%02"PRIx8":%02"PRIx8":%02"PRIx8, \ RTE_ETHER_ADDR_BYTES(&addr)) -uint16_t members[RTE_MAX_ETHPORTS]; -uint16_t members_count; +static uint16_t members[RTE_MAX_ETHPORTS]; +static uint16_t members_count; +static struct rte_mempool *mbuf_pool; static uint16_t BOND_PORT = 0xffff; -static struct rte_mempool *mbuf_pool; - static struct rte_eth_conf port_conf = { .rxmode = { .mq_mode = RTE_ETH_MQ_RX_NONE, @@ -119,7 +118,7 @@ static struct rte_eth_conf port_conf = { }; static void -member_port_init(uint16_t portid, struct rte_mempool *mbuf_pool) +member_port_init(uint16_t portid) { int retval; uint16_t nb_rxd = RTE_RX_DESC_DEFAULT; @@ -204,7 +203,7 @@ member_port_init(uint16_t portid, struct rte_mempool *mbuf_pool) } static void -bond_port_init(struct rte_mempool *mbuf_pool) +bond_port_init(void) { int retval; uint8_t i; @@ -462,10 +461,10 @@ static inline void get_string(struct cmd_send_result *res, char *buf, uint8_t si ((unsigned)((unsigned char *)&(res->ip.addr.ipv4))[3]) ); } + void cmd_send_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct cmd_send_result *res = parsed_result; char ip_str[INET6_ADDRSTRLEN]; @@ -635,7 +634,7 @@ cmd_quit_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unus void cmd_show_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unused void *data) { - uint16_t members[16] = {0}; + uint16_t act_members[16] = {0}; uint8_t len = 16; struct rte_ether_addr addr; uint16_t i; @@ -658,7 +657,7 @@ cmd_show_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unus cmdline_printf(cl, "Active_members:%d " "packets received:Tot:%d Arp:%d IPv4:%d\n", - rte_eth_bond_active_members_get(BOND_PORT, members, len), + rte_eth_bond_active_members_get(BOND_PORT, act_members, len), global_flag_stru_p->port_packets[0], global_flag_stru_p->port_packets[1], global_flag_stru_p->port_packets[2]); @@ -706,11 +705,11 @@ main(int argc, char *argv[]) /* initialize all ports */ members_count = nb_ports; RTE_ETH_FOREACH_DEV(i) { - member_port_init(i, mbuf_pool); + member_port_init(i); members[i] = i; } - bond_port_init(mbuf_pool); + bond_port_init(); rte_spinlock_init(&global_flag_stru_p->lock); diff --git a/examples/bond/meson.build b/examples/bond/meson.build index 45389998e4..5a6db9a870 100644 --- a/examples/bond/meson.build +++ b/examples/bond/meson.build @@ -11,7 +11,6 @@ allow_experimental_apis = true sources = files( 'main.c', ) -cflags += no_shadow_cflag cmd_h = custom_target('commands_hdr', output: 'commands.h', -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 06/23] examples/vmdq: fix shadow variable warning 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (4 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 05/23] examples/bond: fix shadow variable warnings Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 07/23] examples/server_node_efd: fix shadowed variable Stephen Hemminger ` (18 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Rename parameter of get_eth_conf to avoid conflicting with global variable. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/vmdq/main.c | 8 ++++---- examples/vmdq/meson.build | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index 12ef5bffc2..8c9d885090 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -135,19 +135,19 @@ static struct rte_ether_addr vmdq_ports_eth_addr[RTE_MAX_ETHPORTS]; /* Building correct configuration for vdmq. 8< */ static inline int -get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_pools) +get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t max_pools) { struct rte_eth_vmdq_rx_conf conf; unsigned i; - conf.nb_queue_pools = (enum rte_eth_nb_pools)num_pools; - conf.nb_pool_maps = num_pools; + conf.nb_queue_pools = (enum rte_eth_nb_pools)max_pools; + conf.nb_pool_maps = max_pools; conf.enable_default_pool = 0; conf.default_pool = 0; /* set explicit value, even if not used */ for (i = 0; i < conf.nb_pool_maps; i++) { conf.pool_map[i].vlan_id = vlan_tags[i]; - conf.pool_map[i].pools = (1UL << (i % num_pools)); + conf.pool_map[i].pools = (1UL << (i % max_pools)); } *eth_conf = vmdq_conf_default; diff --git a/examples/vmdq/meson.build b/examples/vmdq/meson.build index 6fcde9815c..441678bbe5 100644 --- a/examples/vmdq/meson.build +++ b/examples/vmdq/meson.build @@ -10,4 +10,3 @@ allow_experimental_apis = true sources = files( 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 07/23] examples/server_node_efd: fix shadowed variable 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (5 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 06/23] examples/vmdq: fix shadow variable warning Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 08/23] examples/flow_filtering: fix shadowed variables Stephen Hemminger ` (17 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Yipeng Wang Argument to parse_numa_nodes() shadowed global variable. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/server_node_efd/efd_server/args.c | 6 +++--- examples/server_node_efd/efd_server/meson.build | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/server_node_efd/efd_server/args.c b/examples/server_node_efd/efd_server/args.c index 0e5e89705d..cb0486a952 100644 --- a/examples/server_node_efd/efd_server/args.c +++ b/examples/server_node_efd/efd_server/args.c @@ -81,15 +81,15 @@ parse_portmask(uint8_t max_ports, const char *portmask) * and convert to a number to store in the num_nodes variable */ static int -parse_num_nodes(const char *nodes) +parse_num_nodes(const char *arg) { char *end = NULL; unsigned long temp; - if (nodes == NULL || *nodes == '\0') + if (arg == NULL || *arg == '\0') return -1; - temp = strtoul(nodes, &end, 10); + temp = strtoul(arg, &end, 10); if (end == NULL || *end != '\0' || temp == 0) return -1; diff --git a/examples/server_node_efd/efd_server/meson.build b/examples/server_node_efd/efd_server/meson.build index fa0e15d73a..f1a6616738 100644 --- a/examples/server_node_efd/efd_server/meson.build +++ b/examples/server_node_efd/efd_server/meson.build @@ -10,4 +10,3 @@ allow_experimental_apis = true deps += 'efd' sources += files('args.c', 'init.c', 'main.c') includes += include_directories('../shared') -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 08/23] examples/flow_filtering: fix shadowed variables 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (6 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 07/23] examples/server_node_efd: fix shadowed variable Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 09/23] examples/ipsec-secgw: " Stephen Hemminger ` (16 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Ori Kam Rename places where argument name is shadowing a global variable. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/flow_filtering/flow_skeleton.c | 10 +++++----- examples/flow_filtering/main.c | 4 ++-- examples/flow_filtering/meson.build | 1 - 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/examples/flow_filtering/flow_skeleton.c b/examples/flow_filtering/flow_skeleton.c index 7e57b13b55..bc1d07fbe3 100644 --- a/examples/flow_filtering/flow_skeleton.c +++ b/examples/flow_filtering/flow_skeleton.c @@ -14,7 +14,7 @@ struct rte_flow_attr flow_attr; struct rte_flow_op_attr ops_attr = { .postpone = 0 }; static struct rte_flow * -create_flow_non_template(uint16_t port_id, struct rte_flow_attr *flow_attr, +create_flow_non_template(uint16_t port_id, struct rte_flow_attr *attr, struct rte_flow_item *patterns, struct rte_flow_action *actions, struct rte_flow_error *error) @@ -22,13 +22,13 @@ create_flow_non_template(uint16_t port_id, struct rte_flow_attr *flow_attr, struct rte_flow *flow = NULL; /* Validate the rule and create it. */ - if (rte_flow_validate(port_id, flow_attr, patterns, actions, error) == 0) - flow = rte_flow_create(port_id, flow_attr, patterns, actions, error); + if (rte_flow_validate(port_id, attr, patterns, actions, error) == 0) + flow = rte_flow_create(port_id, attr, patterns, actions, error); return flow; } static struct rte_flow * -create_flow_template(uint16_t port_id, struct rte_flow_op_attr *ops_attr, +create_flow_template(uint16_t port_id, struct rte_flow_op_attr *attr, struct rte_flow_item *patterns, struct rte_flow_action *actions, struct rte_flow_error *error) @@ -42,7 +42,7 @@ create_flow_template(uint16_t port_id, struct rte_flow_op_attr *ops_attr, return rte_flow_async_create(port_id, 1, /* Flow queue used to insert the rule. */ - ops_attr, + attr, table, patterns, 0, /* Pattern template index in the table. */ diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index 8ea6596ed4..f2124881a0 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -125,7 +125,7 @@ assert_link_status(void) } static void -configure_port_template(uint16_t port_id) +configure_port_template(void) { int ret; uint16_t std_queue; @@ -254,7 +254,7 @@ init_port(void) "rte_eth_dev_stop:err=%d, port=%u\n", ret, port_id); - configure_port_template(port_id); + configure_port_template(); ret = rte_eth_dev_start(port_id); if (ret < 0) rte_exit(EXIT_FAILURE, diff --git a/examples/flow_filtering/meson.build b/examples/flow_filtering/meson.build index e2d5850a19..e82d63ad8b 100644 --- a/examples/flow_filtering/meson.build +++ b/examples/flow_filtering/meson.build @@ -33,4 +33,3 @@ sources = files( # The code snippets are not utilized. cflags += '-Wno-unused-function' -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 09/23] examples/ipsec-secgw: fix shadowed variables 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (7 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 08/23] examples/flow_filtering: fix shadowed variables Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 10/23] examples/ip_pipeline: fix shadow variable Stephen Hemminger ` (15 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Radu Nicolau, Akhil Goyal Rename variables where local variable shadows a global declaration. Remove unused lcore_conf parameter from sa_init(). Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/ipsec-secgw/ipsec-secgw.c | 3 +-- examples/ipsec-secgw/ipsec.c | 3 +-- examples/ipsec-secgw/ipsec.h | 1 - examples/ipsec-secgw/ipsec_worker.c | 30 ++++++++++++------------- examples/ipsec-secgw/ipsec_worker.h | 4 ++-- examples/ipsec-secgw/meson.build | 1 - examples/ipsec-secgw/sa.c | 34 +++++++++++++---------------- 7 files changed, 34 insertions(+), 42 deletions(-) diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index fe489f9a56..e10c359226 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -3123,8 +3123,7 @@ main(int32_t argc, char **argv) if ((socket_ctx[socket_id].session_pool != NULL) && (socket_ctx[socket_id].sa_in == NULL) && (socket_ctx[socket_id].sa_out == NULL)) { - sa_init(&socket_ctx[socket_id], socket_id, lcore_conf, - eh_conf->mode_params); + sa_init(&socket_ctx[socket_id], socket_id, eh_conf->mode_params); sp4_init(&socket_ctx[socket_id], socket_id); sp6_init(&socket_ctx[socket_id], socket_id); rt_init(&socket_ctx[socket_id], socket_id); diff --git a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c index c65efd1c16..c3e37f76d1 100644 --- a/examples/ipsec-secgw/ipsec.c +++ b/examples/ipsec-secgw/ipsec.c @@ -415,7 +415,7 @@ int create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa, struct rte_ipsec_session *ips) { - int32_t ret = 0; + int ret = 0; void *sec_ctx; struct rte_security_session_conf sess_conf = { .action_type = ips->type, @@ -489,7 +489,6 @@ create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa, if (ips->type == RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO) { struct rte_flow_error err; - int ret = 0; sec_ctx = rte_eth_dev_get_sec_ctx(sa->portid); if (sec_ctx == NULL) { diff --git a/examples/ipsec-secgw/ipsec.h b/examples/ipsec-secgw/ipsec.h index e3cc43ef3b..20757eeba1 100644 --- a/examples/ipsec-secgw/ipsec.h +++ b/examples/ipsec-secgw/ipsec.h @@ -439,7 +439,6 @@ sa_spi_present(struct sa_ctx *sa_ctx, uint32_t spi, int inbound); void sa_init(struct socket_ctx *ctx, int32_t socket_id, - struct lcore_conf *lcore_conf, const struct eventmode_conf *em_conf); void diff --git a/examples/ipsec-secgw/ipsec_worker.c b/examples/ipsec-secgw/ipsec_worker.c index 04609964cd..612f78f2dc 100644 --- a/examples/ipsec-secgw/ipsec_worker.c +++ b/examples/ipsec-secgw/ipsec_worker.c @@ -94,7 +94,7 @@ ev_vector_attr_update(struct rte_event_vector *vec, struct rte_mbuf *pkt) } static inline void -prepare_out_sessions_tbl(struct sa_ctx *sa_out, +prepare_out_sessions_tbl(struct sa_ctx *out_ctx, struct port_drv_mode_data *data, uint16_t size) { @@ -102,12 +102,12 @@ prepare_out_sessions_tbl(struct sa_ctx *sa_out, struct ipsec_sa *sa; uint32_t i; - if (!sa_out) + if (!out_ctx) return; - for (i = 0; i < sa_out->nb_sa; i++) { + for (i = 0; i < out_ctx->nb_sa; i++) { - sa = &sa_out->sa[i]; + sa = &out_ctx->sa[i]; if (!sa) continue; @@ -1597,7 +1597,7 @@ ipsec_poll_mode_wrkr_inl_pr(void) uint64_t prev_tsc, diff_tsc, cur_tsc; struct ipsec_core_statistics *stats; struct rt_ctx *rt4_ctx, *rt6_ctx; - struct sa_ctx *sa_in, *sa_out; + struct sa_ctx *in_ctx, *out_ctx; struct traffic_type ip4, ip6; struct lcore_rx_queue *rxql; struct rte_mbuf **v4, **v6; @@ -1621,11 +1621,11 @@ ipsec_poll_mode_wrkr_inl_pr(void) sp4_in = socket_ctx[socket_id].sp_ip4_in; sp6_in = socket_ctx[socket_id].sp_ip6_in; - sa_in = socket_ctx[socket_id].sa_in; + in_ctx = socket_ctx[socket_id].sa_in; sp4_out = socket_ctx[socket_id].sp_ip4_out; sp6_out = socket_ctx[socket_id].sp_ip6_out; - sa_out = socket_ctx[socket_id].sa_out; + out_ctx = socket_ctx[socket_id].sa_out; qconf->frag.pool_indir = socket_ctx[socket_id].mbuf_pool_indir; @@ -1676,11 +1676,11 @@ ipsec_poll_mode_wrkr_inl_pr(void) free_pkts(trf.ipsec.pkts, trf.ipsec.num); if (is_unprotected_port(portid)) { - inbound_sp_sa(sp4_in, sa_in, &trf.ip4, + inbound_sp_sa(sp4_in, in_ctx, &trf.ip4, trf.ip4.num, &stats->inbound.spd4); - inbound_sp_sa(sp6_in, sa_in, &trf.ip6, + inbound_sp_sa(sp6_in, in_ctx, &trf.ip6, trf.ip6.num, &stats->inbound.spd6); @@ -1692,12 +1692,12 @@ ipsec_poll_mode_wrkr_inl_pr(void) ip4.num = 0; ip6.num = 0; - outb_inl_pro_spd_process(sp4_out, sa_out, + outb_inl_pro_spd_process(sp4_out, out_ctx, &trf.ip4, &ip4, &ip6, true, &stats->outbound.spd4); - outb_inl_pro_spd_process(sp6_out, sa_out, + outb_inl_pro_spd_process(sp6_out, out_ctx, &trf.ip6, &ip6, &ip4, false, &stats->outbound.spd6); @@ -1733,7 +1733,7 @@ ipsec_poll_mode_wrkr_inl_pr_ss(void) struct lcore_rx_queue *rxql; struct ipsec_sa *sa = NULL; struct lcore_conf *qconf; - struct sa_ctx *sa_out; + struct sa_ctx *out_ctx; uint32_t i, nb_rx, j; int32_t socket_id; uint32_t lcore_id; @@ -1746,9 +1746,9 @@ ipsec_poll_mode_wrkr_inl_pr_ss(void) socket_id = rte_lcore_to_socket_id(lcore_id); /* Get SA info */ - sa_out = socket_ctx[socket_id].sa_out; - if (sa_out && single_sa_idx < sa_out->nb_sa) { - sa = &sa_out->sa[single_sa_idx]; + out_ctx = socket_ctx[socket_id].sa_out; + if (out_ctx && single_sa_idx < out_ctx->nb_sa) { + sa = &out_ctx->sa[single_sa_idx]; ips = ipsec_get_primary_session(sa); sa_out_portid = sa->portid; if (sa->flags & IP6_TUNNEL) diff --git a/examples/ipsec-secgw/ipsec_worker.h b/examples/ipsec-secgw/ipsec_worker.h index 8f96161293..6db5951b9b 100644 --- a/examples/ipsec-secgw/ipsec_worker.h +++ b/examples/ipsec-secgw/ipsec_worker.h @@ -469,7 +469,7 @@ get_hop_for_offload_pkt(struct rte_mbuf *pkt, int is_ipv6) static __rte_always_inline void route4_pkts(struct rt_ctx *rt_ctx, struct rte_mbuf *pkts[], - uint32_t nb_pkts, uint64_t tx_offloads, bool ip_cksum) + uint32_t nb_pkts, uint64_t ol_flags, bool ip_cksum) { uint32_t hop[MAX_PKT_BURST * 2]; uint32_t dst_ip[MAX_PKT_BURST * 2]; @@ -536,7 +536,7 @@ route4_pkts(struct rt_ctx *rt_ctx, struct rte_mbuf *pkts[], if (ip_cksum) { struct rte_ipv4_hdr *ip; - pkt->ol_flags |= tx_offloads; + pkt->ol_flags |= ol_flags; ip = (struct rte_ipv4_hdr *)(ethhdr + 1); ip->hdr_checksum = 0; diff --git a/examples/ipsec-secgw/meson.build b/examples/ipsec-secgw/meson.build index 20fd7c6c5f..e6a0e18a73 100644 --- a/examples/ipsec-secgw/meson.build +++ b/examples/ipsec-secgw/meson.build @@ -25,7 +25,6 @@ sources = files( ) cflags += no_wvla_cflag -cflags += no_shadow_cflag app_cflags = ['-Wno-address-of-packed-member'] foreach flag:app_cflags diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c index a1a996dee8..866ba04b86 100644 --- a/examples/ipsec-secgw/sa.c +++ b/examples/ipsec-secgw/sa.c @@ -1696,7 +1696,6 @@ sa_spi_present(struct sa_ctx *sa_ctx, uint32_t spi, int inbound) void sa_init(struct socket_ctx *ctx, int32_t socket_id, - struct lcore_conf *lcore_conf, const struct eventmode_conf *em_conf) { int32_t rc; @@ -1828,8 +1827,8 @@ outbound_sa_lookup(struct sa_ctx *sa_ctx, uint32_t sa_idx[], * Select HW offloads to be used. */ int -sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, - uint64_t *tx_offloads, uint8_t *hw_reassembly) +sa_check_offloads(uint16_t port_id, uint64_t *rx_flags, + uint64_t *tx_flags, uint8_t *hw_reassembly) { struct ipsec_sa *rule; uint32_t idx_sa; @@ -1837,8 +1836,8 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, struct rte_eth_dev_info dev_info; int ret; - *rx_offloads = 0; - *tx_offloads = 0; + *rx_flags = 0; + *tx_flags = 0; *hw_reassembly = 0; ret = rte_eth_dev_info_get(port_id, &dev_info); @@ -1855,9 +1854,9 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, rule_type == RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL) && rule->portid == port_id) - *rx_offloads |= RTE_ETH_RX_OFFLOAD_SECURITY; + *rx_flags |= RTE_ETH_RX_OFFLOAD_SECURITY; if (IS_HW_REASSEMBLY_EN(rule->flags)) { - *tx_offloads |= RTE_ETH_TX_OFFLOAD_MULTI_SEGS; + *tx_flags |= RTE_ETH_TX_OFFLOAD_MULTI_SEGS; *hw_reassembly = 1; } } @@ -1875,20 +1874,17 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, * non-IPSec packets, there is no need of * IPv4 Checksum offload. */ - *tx_offloads |= RTE_ETH_TX_OFFLOAD_SECURITY; + *tx_flags |= RTE_ETH_TX_OFFLOAD_SECURITY; if (rule->mss) - *tx_offloads |= (RTE_ETH_TX_OFFLOAD_TCP_TSO | - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM); + *tx_flags |= RTE_ETH_TX_OFFLOAD_TCP_TSO | + RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; break; case RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO: - *tx_offloads |= RTE_ETH_TX_OFFLOAD_SECURITY; + *tx_flags |= RTE_ETH_TX_OFFLOAD_SECURITY; if (rule->mss) - *tx_offloads |= - RTE_ETH_TX_OFFLOAD_TCP_TSO; - if (dev_info.tx_offload_capa & - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) - *tx_offloads |= - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; + *tx_flags |= RTE_ETH_TX_OFFLOAD_TCP_TSO; + if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) + *tx_flags |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; break; default: /* Enable IPv4 checksum offload even if @@ -1896,13 +1892,13 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, */ if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) - *tx_offloads |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; + *tx_flags |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; break; } } else { if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) - *tx_offloads |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; + *tx_flags |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; } } return 0; -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 10/23] examples/ip_pipeline: fix shadow variable 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (8 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 09/23] examples/ipsec-secgw: " Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 11/23] examples/multi_process: fix shadowed variable Stephen Hemminger ` (14 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Cristian Dumitrescu The variable p was used for both pipeline and parameters. Rename first instance. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/ip_pipeline/cli.c | 9 ++++----- examples/ip_pipeline/meson.build | 1 - 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/ip_pipeline/cli.c b/examples/ip_pipeline/cli.c index 766fc8e46e..935c9b39d5 100644 --- a/examples/ip_pipeline/cli.c +++ b/examples/ip_pipeline/cli.c @@ -4721,7 +4721,7 @@ table_rule_show(const char *pipeline_name, uint32_t table_id, const char *file_name) { - struct pipeline *p; + struct pipeline *pipeline; struct table *table; struct table_rule *rule; FILE *f = NULL; @@ -4732,12 +4732,11 @@ table_rule_show(const char *pipeline_name, (file_name == NULL)) return -1; - p = pipeline_find(pipeline_name); - if ((p == NULL) || - (table_id >= p->n_tables)) + pipeline = pipeline_find(pipeline_name); + if (pipeline == NULL || table_id >= pipeline->n_tables) return -1; - table = &p->table[table_id]; + table = &pipeline->table[table_id]; /* Open file. */ f = fopen(file_name, "w"); diff --git a/examples/ip_pipeline/meson.build b/examples/ip_pipeline/meson.build index c5cda980f9..68049157e4 100644 --- a/examples/ip_pipeline/meson.build +++ b/examples/ip_pipeline/meson.build @@ -28,4 +28,3 @@ sources = files( 'thread.c', 'tmgr.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 11/23] examples/multi_process: fix shadowed variable 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (9 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 10/23] examples/ip_pipeline: fix shadow variable Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 12/23] examples/vm_power_manage: enable shadow warnings Stephen Hemminger ` (13 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Anatoly Burakov The string passed to parsing function number of clients shadowed global declaration. Also avoid similar problem in parsing portmask. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- .../multi_process/client_server_mp/mp_server/args.c | 12 ++++++------ .../client_server_mp/mp_server/meson.build | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/examples/multi_process/client_server_mp/mp_server/args.c b/examples/multi_process/client_server_mp/mp_server/args.c index 3c2ca266b0..60dbb3c626 100644 --- a/examples/multi_process/client_server_mp/mp_server/args.c +++ b/examples/multi_process/client_server_mp/mp_server/args.c @@ -42,18 +42,18 @@ usage(void) * array variable */ static int -parse_portmask(const char *portmask) +parse_portmask(const char *str) { char *end = NULL; unsigned long long pm; uint16_t id; - if (portmask == NULL || *portmask == '\0') + if (str == NULL || *str == '\0') return -1; /* convert parameter to a number and verify */ errno = 0; - pm = strtoull(portmask, &end, 16); + pm = strtoull(str, &end, 16); if (errno != 0 || end == NULL || *end != '\0') return -1; @@ -80,15 +80,15 @@ parse_portmask(const char *portmask) * and convert to a number to store in the num_clients variable */ static int -parse_num_clients(const char *clients) +parse_num_clients(const char *str) { char *end = NULL; unsigned long temp; - if (clients == NULL || *clients == '\0') + if (str == NULL || *str == '\0') return -1; - temp = strtoul(clients, &end, 10); + temp = strtoul(str, &end, 10); if (end == NULL || *end != '\0' || temp == 0) return -1; diff --git a/examples/multi_process/client_server_mp/mp_server/meson.build b/examples/multi_process/client_server_mp/mp_server/meson.build index a31eea764e..9e585e80b9 100644 --- a/examples/multi_process/client_server_mp/mp_server/meson.build +++ b/examples/multi_process/client_server_mp/mp_server/meson.build @@ -14,4 +14,3 @@ sources = files( 'init.c', 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 12/23] examples/vm_power_manage: enable shadow warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (10 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 11/23] examples/multi_process: fix shadowed variable Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 13/23] examples/bbdev_app: " Stephen Hemminger ` (12 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Anatoly Burakov, Sivaprasad Tummala No problems in this code, re-enable the warning. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/vm_power_manager/guest_cli/meson.build | 1 - examples/vm_power_manager/meson.build | 1 - 2 files changed, 2 deletions(-) diff --git a/examples/vm_power_manager/guest_cli/meson.build b/examples/vm_power_manager/guest_cli/meson.build index 45f2edab22..6a6809240e 100644 --- a/examples/vm_power_manager/guest_cli/meson.build +++ b/examples/vm_power_manager/guest_cli/meson.build @@ -13,7 +13,6 @@ sources = files( 'parse.c', 'vm_power_cli_guest.c', ) -cflags += no_shadow_cflag allow_experimental_apis = true diff --git a/examples/vm_power_manager/meson.build b/examples/vm_power_manager/meson.build index 6bc84d752d..53949ce6d8 100644 --- a/examples/vm_power_manager/meson.build +++ b/examples/vm_power_manager/meson.build @@ -29,7 +29,6 @@ sources = files( 'power_manager.c', 'vm_power_cli.c', ) -cflags += no_shadow_cflag # If we're on X86, pull in the x86 code for the branch monitor algo. if dpdk_conf.has('RTE_ARCH_X86_64') -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 13/23] examples/bbdev_app: enable shadow warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (11 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 12/23] examples/vm_power_manage: enable shadow warnings Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 14/23] examples/ptpclient: fix shadow variable warnings Stephen Hemminger ` (11 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Nicolas Chautru No shadows here. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/bbdev_app/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/bbdev_app/meson.build b/examples/bbdev_app/meson.build index 283a9551b3..ea588e8706 100644 --- a/examples/bbdev_app/meson.build +++ b/examples/bbdev_app/meson.build @@ -11,4 +11,3 @@ allow_experimental_apis = true sources = files( 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 14/23] examples/ptpclient: fix shadow variable warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (12 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 13/23] examples/bbdev_app: " Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 15/23] examples/vhost: fix shadow warnings Stephen Hemminger ` (10 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Kirill Rybalchenko Rename function parameters that shadow global variables. In port_init() rename mbuf_pool to mp, and in print_clock_info(), delta_eval(), parse_sync(), parse_fup(), and parse_drsp() rename ptp_data to ptp. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/ptpclient/meson.build | 1 - examples/ptpclient/ptpclient.c | 138 ++++++++++++++++----------------- 2 files changed, 69 insertions(+), 70 deletions(-) diff --git a/examples/ptpclient/meson.build b/examples/ptpclient/meson.build index 2e9b7625fc..47d091ea21 100644 --- a/examples/ptpclient/meson.build +++ b/examples/ptpclient/meson.build @@ -10,4 +10,3 @@ allow_experimental_apis = true sources = files( 'ptpclient.c', ) -cflags += no_shadow_cflag diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c index 174ca5dd70..8e1560a3ac 100644 --- a/examples/ptpclient/ptpclient.c +++ b/examples/ptpclient/ptpclient.c @@ -173,7 +173,7 @@ ns_to_timeval(int64_t nsec) * coming from the mbuf_pool passed as a parameter. */ static inline int -port_init(uint16_t port, struct rte_mempool *mbuf_pool) +port_init(uint16_t port, struct rte_mempool *mp) { struct rte_eth_dev_info dev_info; struct rte_eth_conf port_conf; @@ -223,7 +223,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) rxconf->offloads = port_conf.rxmode.offloads; retval = rte_eth_rx_queue_setup(port, q, nb_rxd, - rte_eth_dev_socket_id(port), rxconf, mbuf_pool); + rte_eth_dev_socket_id(port), rxconf, mp); if (retval < 0) return retval; @@ -266,42 +266,42 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) } static void -print_clock_info(struct ptpv2_time_receiver_ordinary *ptp_data) +print_clock_info(struct ptpv2_time_receiver_ordinary *ptp) { int64_t nsec; struct timespec net_time, sys_time; printf("time transmitter clock id: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", - ptp_data->transmitter_clock_id.id[0], - ptp_data->transmitter_clock_id.id[1], - ptp_data->transmitter_clock_id.id[2], - ptp_data->transmitter_clock_id.id[3], - ptp_data->transmitter_clock_id.id[4], - ptp_data->transmitter_clock_id.id[5], - ptp_data->transmitter_clock_id.id[6], - ptp_data->transmitter_clock_id.id[7]); + ptp->transmitter_clock_id.id[0], + ptp->transmitter_clock_id.id[1], + ptp->transmitter_clock_id.id[2], + ptp->transmitter_clock_id.id[3], + ptp->transmitter_clock_id.id[4], + ptp->transmitter_clock_id.id[5], + ptp->transmitter_clock_id.id[6], + ptp->transmitter_clock_id.id[7]); printf("\nT2 - time receiver clock. %lds %ldns", - (ptp_data->tstamp2.tv_sec), - (ptp_data->tstamp2.tv_nsec)); + (ptp->tstamp2.tv_sec), + (ptp->tstamp2.tv_nsec)); printf("\nT1 - time transmitter clock. %lds %ldns ", - ptp_data->tstamp1.tv_sec, - (ptp_data->tstamp1.tv_nsec)); + ptp->tstamp1.tv_sec, + (ptp->tstamp1.tv_nsec)); printf("\nT3 - time receiver clock. %lds %ldns", - ptp_data->tstamp3.tv_sec, - (ptp_data->tstamp3.tv_nsec)); + ptp->tstamp3.tv_sec, + (ptp->tstamp3.tv_nsec)); printf("\nT4 - time transmitter clock. %lds %ldns\n", - ptp_data->tstamp4.tv_sec, - (ptp_data->tstamp4.tv_nsec)); + ptp->tstamp4.tv_sec, + (ptp->tstamp4.tv_nsec)); printf("\nDelta between transmitter and receiver clocks:%"PRId64"ns\n", - ptp_data->delta); + ptp->delta); clock_gettime(CLOCK_REALTIME, &sys_time); - rte_eth_timesync_read_time(ptp_data->current_ptp_port, + rte_eth_timesync_read_time(ptp->current_ptp_port, &net_time); time_t ts = net_time.tv_sec; @@ -313,14 +313,14 @@ print_clock_info(struct ptpv2_time_receiver_ordinary *ptp_data) nsec = (int64_t)timespec64_to_ns(&net_time) - (int64_t)timespec64_to_ns(&sys_time); - ptp_data->new_adj = ns_to_timeval(nsec); + ptp->new_adj = ns_to_timeval(nsec); - gettimeofday(&ptp_data->new_adj, NULL); + gettimeofday(&ptp->new_adj, NULL); - time_t tp = ptp_data->new_adj.tv_sec; + time_t tp = ptp->new_adj.tv_sec; printf("\nCurrent SYS Time: %.24s %.6ld ns", - ctime(&tp), ptp_data->new_adj.tv_usec); + ctime(&tp), ptp->new_adj.tv_usec); printf("\nDelta between PTP and Linux Kernel time:%"PRId64"ns\n", nsec); @@ -332,7 +332,7 @@ print_clock_info(struct ptpv2_time_receiver_ordinary *ptp_data) } static int64_t -delta_eval(struct ptpv2_time_receiver_ordinary *ptp_data) +delta_eval(struct ptpv2_time_receiver_ordinary *ptp) { int64_t delta; uint64_t t1 = 0; @@ -340,10 +340,10 @@ delta_eval(struct ptpv2_time_receiver_ordinary *ptp_data) uint64_t t3 = 0; uint64_t t4 = 0; - t1 = timespec64_to_ns(&ptp_data->tstamp1); - t2 = timespec64_to_ns(&ptp_data->tstamp2); - t3 = timespec64_to_ns(&ptp_data->tstamp3); - t4 = timespec64_to_ns(&ptp_data->tstamp4); + t1 = timespec64_to_ns(&ptp->tstamp1); + t2 = timespec64_to_ns(&ptp->tstamp2); + t3 = timespec64_to_ns(&ptp->tstamp3); + t4 = timespec64_to_ns(&ptp->tstamp4); delta = -((int64_t)((t2 - t1) - (t4 - t3))) / 2; @@ -354,26 +354,26 @@ delta_eval(struct ptpv2_time_receiver_ordinary *ptp_data) * Parse the PTP SYNC message. */ static void -parse_sync(struct ptpv2_time_receiver_ordinary *ptp_data, uint16_t rx_tstamp_idx) +parse_sync(struct ptpv2_time_receiver_ordinary *ptp, uint16_t rx_tstamp_idx) { struct ptp_header *ptp_hdr; - ptp_hdr = rte_pktmbuf_mtod_offset(ptp_data->m, struct ptp_header *, + ptp_hdr = rte_pktmbuf_mtod_offset(ptp->m, struct ptp_header *, sizeof(struct rte_ether_hdr)); - ptp_data->seqID_SYNC = rte_be_to_cpu_16(ptp_hdr->seq_id); + ptp->seqID_SYNC = rte_be_to_cpu_16(ptp_hdr->seq_id); - if (ptp_data->ptpset == 0) { - ptp_data->transmitter_clock_id = ptp_hdr->source_port_id.clock_id; - ptp_data->ptpset = 1; + if (ptp->ptpset == 0) { + ptp->transmitter_clock_id = ptp_hdr->source_port_id.clock_id; + ptp->ptpset = 1; } - if (memcmp(&ptp_data->transmitter_clock_id, + if (memcmp(&ptp->transmitter_clock_id, &ptp_hdr->source_port_id.clock_id, sizeof(struct clock_id)) == 0) { - if (ptp_data->ptpset == 1) - rte_eth_timesync_read_rx_timestamp(ptp_data->portid, - &ptp_data->tstamp2, rx_tstamp_idx); + if (ptp->ptpset == 1) + rte_eth_timesync_read_rx_timestamp(ptp->portid, + &ptp->tstamp2, rx_tstamp_idx); } } @@ -382,7 +382,7 @@ parse_sync(struct ptpv2_time_receiver_ordinary *ptp_data, uint16_t rx_tstamp_idx * Parse the PTP FOLLOWUP message and send DELAY_REQ to the main clock. */ static void -parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) +parse_fup(struct ptpv2_time_receiver_ordinary *ptp) { struct rte_ether_hdr *eth_hdr; struct rte_ether_addr eth_addr; @@ -395,32 +395,32 @@ parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) struct rte_ether_addr eth_multicast = ether_multicast; size_t pkt_size; int wait_us; - struct rte_mbuf *m = ptp_data->m; + struct rte_mbuf *m = ptp->m; int ret; eth_hdr = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); ptp_hdr = rte_pktmbuf_mtod_offset(m, struct ptp_header *, sizeof(struct rte_ether_hdr)); - if (memcmp(&ptp_data->transmitter_clock_id, + if (memcmp(&ptp->transmitter_clock_id, &ptp_hdr->source_port_id.clock_id, sizeof(struct clock_id)) != 0) return; - ptp_data->seqID_FOLLOWUP = rte_be_to_cpu_16(ptp_hdr->seq_id); + ptp->seqID_FOLLOWUP = rte_be_to_cpu_16(ptp_hdr->seq_id); ptp_msg = rte_pktmbuf_mtod_offset(m, struct ptp_message *, sizeof(struct rte_ether_hdr)); origin_tstamp = &ptp_msg->follow_up.precise_origin_tstamp; - ptp_data->tstamp1.tv_nsec = ntohl(origin_tstamp->ns); - ptp_data->tstamp1.tv_sec = + ptp->tstamp1.tv_nsec = ntohl(origin_tstamp->ns); + ptp->tstamp1.tv_sec = ((uint64_t)ntohl(origin_tstamp->sec_lsb)) | (((uint64_t)ntohs(origin_tstamp->sec_msb)) << 32); - if (ptp_data->seqID_FOLLOWUP == ptp_data->seqID_SYNC) { - ret = rte_eth_macaddr_get(ptp_data->portid, ð_addr); + if (ptp->seqID_FOLLOWUP == ptp->seqID_SYNC) { + ret = rte_eth_macaddr_get(ptp->portid, ð_addr); if (ret != 0) { printf("\nCore %u: port %u failed to get MAC address: %s\n", - rte_lcore_id(), ptp_data->portid, + rte_lcore_id(), ptp->portid, rte_strerror(-ret)); return; } @@ -446,7 +446,7 @@ parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) struct delay_req_msg *, sizeof(struct rte_ether_hdr)); - req_msg->hdr.seq_id = htons(ptp_data->seqID_SYNC); + req_msg->hdr.seq_id = htons(ptp->seqID_SYNC); req_msg->hdr.msg_type = DELAY_REQ; req_msg->hdr.ver = 2; req_msg->hdr.control = 1; @@ -468,25 +468,25 @@ parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) client_clkid->id[6] = eth_hdr->src_addr.addr_bytes[4]; client_clkid->id[7] = eth_hdr->src_addr.addr_bytes[5]; - ptp_data->client_clock_id = *client_clkid; + ptp->client_clock_id = *client_clkid; /* Enable flag for hardware timestamping. */ created_pkt->ol_flags |= RTE_MBUF_F_TX_IEEE1588_TMST; /*Read value from NIC to prevent latching with old value. */ - rte_eth_timesync_read_tx_timestamp(ptp_data->portid, - &ptp_data->tstamp3); + rte_eth_timesync_read_tx_timestamp(ptp->portid, + &ptp->tstamp3); /* Transmit the packet. */ - rte_eth_tx_burst(ptp_data->portid, 0, &created_pkt, 1); + rte_eth_tx_burst(ptp->portid, 0, &created_pkt, 1); wait_us = 0; - ptp_data->tstamp3.tv_nsec = 0; - ptp_data->tstamp3.tv_sec = 0; + ptp->tstamp3.tv_nsec = 0; + ptp->tstamp3.tv_sec = 0; /* Wait at least 1 us to read TX timestamp. */ - while ((rte_eth_timesync_read_tx_timestamp(ptp_data->portid, - &ptp_data->tstamp3) < 0) && (wait_us < 1000)) { + while ((rte_eth_timesync_read_tx_timestamp(ptp->portid, + &ptp->tstamp3) < 0) && (wait_us < 1000)) { rte_delay_us(1); wait_us++; } @@ -530,9 +530,9 @@ update_kernel_time(void) * Parse the DELAY_RESP message. */ static void -parse_drsp(struct ptpv2_time_receiver_ordinary *ptp_data) +parse_drsp(struct ptpv2_time_receiver_ordinary *ptp) { - struct rte_mbuf *m = ptp_data->m; + struct rte_mbuf *m = ptp->m; struct ptp_message *ptp_msg; struct tstamp *rx_tstamp; uint16_t seq_id; @@ -540,26 +540,26 @@ parse_drsp(struct ptpv2_time_receiver_ordinary *ptp_data) ptp_msg = rte_pktmbuf_mtod_offset(m, struct ptp_message *, sizeof(struct rte_ether_hdr)); seq_id = rte_be_to_cpu_16(ptp_msg->delay_resp.hdr.seq_id); - if (memcmp(&ptp_data->client_clock_id, + if (memcmp(&ptp->client_clock_id, &ptp_msg->delay_resp.req_port_id.clock_id, sizeof(struct clock_id)) == 0) { - if (seq_id == ptp_data->seqID_FOLLOWUP) { + if (seq_id == ptp->seqID_FOLLOWUP) { rx_tstamp = &ptp_msg->delay_resp.rx_tstamp; - ptp_data->tstamp4.tv_nsec = ntohl(rx_tstamp->ns); - ptp_data->tstamp4.tv_sec = + ptp->tstamp4.tv_nsec = ntohl(rx_tstamp->ns); + ptp->tstamp4.tv_sec = ((uint64_t)ntohl(rx_tstamp->sec_lsb)) | (((uint64_t)ntohs(rx_tstamp->sec_msb)) << 32); /* Evaluate the delta for adjustment. */ - ptp_data->delta = delta_eval(ptp_data); + ptp->delta = delta_eval(ptp); - rte_eth_timesync_adjust_time(ptp_data->portid, - ptp_data->delta); + rte_eth_timesync_adjust_time(ptp->portid, + ptp->delta); - ptp_data->current_ptp_port = ptp_data->portid; + ptp->current_ptp_port = ptp->portid; /* Update kernel time if enabled in app parameters. */ - if (ptp_data->kernel_time_set == 1) + if (ptp->kernel_time_set == 1) update_kernel_time(); -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 15/23] examples/vhost: fix shadow warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (13 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 14/23] examples/ptpclient: fix shadow variable warnings Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 16/23] examples/qos_sched: eliminate shadowed variables Stephen Hemminger ` (9 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Maxime Coquelin, Chenbo Xia The mbuf_pool was being passed as parameter with same as global; resolve conflict by making variable local to main and passing where needed. The num_devices was global but also passed as arg. Remove the parameter. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/vhost/main.c | 19 ++++++++++--------- examples/vhost/meson.build | 1 - 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/vhost/main.c b/examples/vhost/main.c index ac888348d2..5978a50cfe 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -86,7 +86,6 @@ static uint32_t promiscuous; static uint32_t num_queues = 0; static uint32_t num_devices; -static struct rte_mempool *mbuf_pool; static int mergeable; /* Enable VM2VM communications. If this is disabled then the MAC address compare is skipped. */ @@ -387,7 +386,7 @@ open_dma(const char *value) * according to the pool & queue limits. */ static inline int -get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_devices) +get_eth_conf(struct rte_eth_conf *eth_conf) { struct rte_eth_vmdq_rx_conf conf; struct rte_eth_vmdq_rx_conf *def_conf = @@ -415,7 +414,7 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_devices) * coming from the mbuf_pool passed as parameter */ static inline int -port_init(uint16_t port) +port_init(uint16_t port, struct rte_mempool *mbuf_pool) { struct rte_eth_dev_info dev_info; struct rte_eth_conf port_conf; @@ -460,7 +459,7 @@ port_init(uint16_t port) } /* Get port configuration. */ - retval = get_eth_conf(&port_conf, num_devices); + retval = get_eth_conf(&port_conf); if (retval < 0) return retval; /* NIC queues are divided into pf queues and vmdq queues. */ @@ -1440,7 +1439,7 @@ uint16_t sync_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id, } static __rte_always_inline void -drain_virtio_tx(struct vhost_dev *vdev) +drain_virtio_tx(struct vhost_dev *vdev, struct rte_mempool *mbuf_pool) { struct rte_mbuf *pkts[MAX_PKT_BURST]; uint16_t count; @@ -1477,8 +1476,9 @@ drain_virtio_tx(struct vhost_dev *vdev) * } */ static int -switch_worker(void *arg __rte_unused) +switch_worker(void *arg) { + struct rte_mempool *mbuf_pool = arg; unsigned i; unsigned lcore_id = rte_lcore_id(); struct vhost_dev *vdev; @@ -1519,7 +1519,7 @@ switch_worker(void *arg __rte_unused) drain_eth_rx(vdev); if (likely(!vdev->remove)) - drain_virtio_tx(vdev); + drain_virtio_tx(vdev, mbuf_pool); } } @@ -1906,6 +1906,7 @@ reset_dma(void) int main(int argc, char *argv[]) { + struct rte_mempool *mbuf_pool = NULL; unsigned lcore_id, core_id = 0; unsigned nb_ports, valid_num_ports; int ret, i; @@ -1982,7 +1983,7 @@ main(int argc, char *argv[]) "Skipping disabled port %d\n", portid); continue; } - if (port_init(portid) != 0) + if (port_init(portid, mbuf_pool) != 0) rte_exit(EXIT_FAILURE, "Cannot initialize network ports\n"); } @@ -1998,7 +1999,7 @@ main(int argc, char *argv[]) /* Launch all data cores. */ RTE_LCORE_FOREACH_WORKER(lcore_id) - rte_eal_remote_launch(switch_worker, NULL, lcore_id); + rte_eal_remote_launch(switch_worker, mbuf_pool, lcore_id); if (client_mode) flags |= RTE_VHOST_USER_CLIENT; diff --git a/examples/vhost/meson.build b/examples/vhost/meson.build index af5049c7ef..e938be8f45 100644 --- a/examples/vhost/meson.build +++ b/examples/vhost/meson.build @@ -19,4 +19,3 @@ sources = files( 'virtio_net.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 16/23] examples/qos_sched: eliminate shadowed variables 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (14 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 15/23] examples/vhost: fix shadow warnings Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 17/23] examples/l2fwd-jobstats: fix shadowed variable Stephen Hemminger ` (8 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Cristian Dumitrescu The port_params and subport_params are global variables, then passed to load functions. The names clash so just use the globals. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/qos_sched/cfg_file.c | 12 ++++++------ examples/qos_sched/cfg_file.h | 4 ++-- examples/qos_sched/init.c | 4 ++-- examples/qos_sched/meson.build | 1 - 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/examples/qos_sched/cfg_file.c b/examples/qos_sched/cfg_file.c index c75cf9db2e..3ca06c2ff9 100644 --- a/examples/qos_sched/cfg_file.c +++ b/examples/qos_sched/cfg_file.c @@ -41,20 +41,20 @@ int parse_u64(const char *entry, uint64_t *val) } int -cfg_load_port(struct rte_cfgfile *cfg, struct rte_sched_port_params *port_params) +cfg_load_port(struct rte_cfgfile *cfg) { const char *entry; - if (!cfg || !port_params) + if (!cfg) return -1; entry = rte_cfgfile_get_entry(cfg, "port", "frame overhead"); if (entry) - port_params->frame_overhead = (uint32_t)atoi(entry); + port_params.frame_overhead = (uint32_t)atoi(entry); entry = rte_cfgfile_get_entry(cfg, "port", "number of subports per port"); if (entry) - port_params->n_subports_per_port = (uint32_t)atoi(entry); + port_params.n_subports_per_port = (uint32_t)atoi(entry); return 0; } @@ -279,13 +279,13 @@ cfg_load_subport_profile(struct rte_cfgfile *cfg, } int -cfg_load_subport(struct rte_cfgfile *cfg, struct rte_sched_subport_params *subport_params) +cfg_load_subport(struct rte_cfgfile *cfg) { bool cman_enabled = false; const char *entry; int i, j, k; - if (!cfg || !subport_params) + if (!cfg) return -1; memset(app_pipe_to_profile, -1, sizeof(app_pipe_to_profile)); diff --git a/examples/qos_sched/cfg_file.h b/examples/qos_sched/cfg_file.h index 71d280718f..26552f1e30 100644 --- a/examples/qos_sched/cfg_file.h +++ b/examples/qos_sched/cfg_file.h @@ -10,11 +10,11 @@ int parse_u64(const char *entry, uint64_t *val); -int cfg_load_port(struct rte_cfgfile *cfg, struct rte_sched_port_params *port); +int cfg_load_port(struct rte_cfgfile *cfg); int cfg_load_pipe(struct rte_cfgfile *cfg, struct rte_sched_pipe_params *pipe); -int cfg_load_subport(struct rte_cfgfile *cfg, struct rte_sched_subport_params *subport); +int cfg_load_subport(struct rte_cfgfile *cfg); int cfg_load_subport_profile(struct rte_cfgfile *cfg, struct rte_sched_subport_profile_params diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c index ace7279c67..561f9e0619 100644 --- a/examples/qos_sched/init.c +++ b/examples/qos_sched/init.c @@ -296,11 +296,11 @@ app_load_cfg_profile(const char *profile) if (file == NULL) rte_exit(EXIT_FAILURE, "Cannot load configuration profile %s\n", profile); - ret = cfg_load_port(file, &port_params); + ret = cfg_load_port(file); if (ret) goto _app_load_cfg_profile_error_return; - ret = cfg_load_subport(file, subport_params); + ret = cfg_load_subport(file); if (ret) goto _app_load_cfg_profile_error_return; diff --git a/examples/qos_sched/meson.build b/examples/qos_sched/meson.build index 4657c756a1..92657ce8a5 100644 --- a/examples/qos_sched/meson.build +++ b/examples/qos_sched/meson.build @@ -18,4 +18,3 @@ sources = files( 'stats.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 17/23] examples/l2fwd-jobstats: fix shadowed variable 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (15 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 16/23] examples/qos_sched: eliminate shadowed variables Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 18/23] examples/l2fwd-crypto: remove no shadow flag Stephen Hemminger ` (7 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger The inner loop across ports was shadowing other definition of variable i. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/l2fwd-jobstats/main.c | 6 +++--- examples/l2fwd-jobstats/meson.build | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index 036bd4f951..f2c284cebb 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -515,7 +515,6 @@ l2fwd_main_loop(void) uint64_t repeats = 0; do { - uint8_t i; uint64_t now = rte_get_timer_cycles(); repeats++; @@ -526,8 +525,9 @@ l2fwd_main_loop(void) rte_memory_order_relaxed); need_manage |= stats_read_pending; - for (i = 0; i < qconf->n_rx_port && !need_manage; i++) - need_manage = qconf->rx_timers[i].expire < now; + for (uint16_t port_id = 0; + port_id < qconf->n_rx_port && !need_manage; port_id++) + need_manage = qconf->rx_timers[port_id].expire < now; } while (!need_manage); diff --git a/examples/l2fwd-jobstats/meson.build b/examples/l2fwd-jobstats/meson.build index 51da6e277e..d59d3d6555 100644 --- a/examples/l2fwd-jobstats/meson.build +++ b/examples/l2fwd-jobstats/meson.build @@ -12,4 +12,3 @@ sources = files( 'main.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 18/23] examples/l2fwd-crypto: remove no shadow flag 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (16 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 17/23] examples/l2fwd-jobstats: fix shadowed variable Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 19/23] examples/l2fwd-event: " Stephen Hemminger ` (6 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Akhil Goyal, Fan Zhang There are no instances of shadow variables in this example. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/l2fwd-crypto/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/l2fwd-crypto/meson.build b/examples/l2fwd-crypto/meson.build index 8c5432cb7f..c21722b85c 100644 --- a/examples/l2fwd-crypto/meson.build +++ b/examples/l2fwd-crypto/meson.build @@ -15,4 +15,3 @@ sources = files( 'main.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 19/23] examples/l2fwd-event: remove no shadow flag 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (17 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 18/23] examples/l2fwd-crypto: remove no shadow flag Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 20/23] examples/l2fwd-keepalive: fix shadow variable warning Stephen Hemminger ` (5 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Sunil Kumar Kori, Pavan Nikhilesh There are no shadow variable warnings in this example. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/l2fwd-event/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/l2fwd-event/meson.build b/examples/l2fwd-event/meson.build index ff171189ba..5bc8188086 100644 --- a/examples/l2fwd-event/meson.build +++ b/examples/l2fwd-event/meson.build @@ -17,4 +17,3 @@ sources = files( 'l2fwd_event_internal_port.c', 'l2fwd_poll.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 20/23] examples/l2fwd-keepalive: fix shadow variable warning 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (18 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 19/23] examples/l2fwd-event: " Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 21/23] examples/l3fwd-graph: remove no shadow flag Stephen Hemminger ` (4 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger The qconf parameter can reused, fixing a shadow warning. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/l2fwd-keepalive/main.c | 2 +- examples/l2fwd-keepalive/meson.build | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index 993e0bf9da..12ca60c3e4 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -780,7 +780,7 @@ main(int argc, char **argv) } /* launch per-lcore init on every worker lcore */ RTE_LCORE_FOREACH_WORKER(lcore_id) { - struct lcore_queue_conf *qconf = &lcore_queue_conf[lcore_id]; + qconf = &lcore_queue_conf[lcore_id]; if (qconf->n_rx_port == 0) RTE_LOG(INFO, L2FWD, diff --git a/examples/l2fwd-keepalive/meson.build b/examples/l2fwd-keepalive/meson.build index 258f3baf08..e3f72aedb8 100644 --- a/examples/l2fwd-keepalive/meson.build +++ b/examples/l2fwd-keepalive/meson.build @@ -19,4 +19,3 @@ sources = files( 'main.c', 'shm.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 21/23] examples/l3fwd-graph: remove no shadow flag 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (19 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 20/23] examples/l2fwd-keepalive: fix shadow variable warning Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 22/23] examples/l3fwd: fix shadow variable warnings Stephen Hemminger ` (3 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev Cc: Stephen Hemminger, Jerin Jacob, Kiran Kumar K, Nithin Dabilpuram, Zhirun Yan This example has no shadow variable warnings. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/l3fwd-graph/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/l3fwd-graph/meson.build b/examples/l3fwd-graph/meson.build index e3f4fa8df2..b3ceaadb59 100644 --- a/examples/l3fwd-graph/meson.build +++ b/examples/l3fwd-graph/meson.build @@ -11,4 +11,3 @@ sources = files( 'main.c', ) allow_experimental_apis = true -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 22/23] examples/l3fwd: fix shadow variable warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (20 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 21/23] examples/l3fwd-graph: remove no shadow flag Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 3:49 ` [PATCH 23/23] examples/l3fwd-power: " Stephen Hemminger ` (2 subsequent siblings) 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Correct for shadow variables by renaming: - global ipv6 becomes ipv6_enabled (convert int to bool) - lcore_params used by eventdev becomes config_parsed - masks for sse globals get xmm_ prefix Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/l3fwd/l3fwd.h | 2 +- examples/l3fwd/l3fwd_em.c | 32 ++++++++++++++++++-------------- examples/l3fwd/l3fwd_em_hlm.h | 8 ++++---- examples/l3fwd/l3fwd_lpm.c | 4 ++-- examples/l3fwd/l3fwd_route.h | 12 ++++++------ examples/l3fwd/main.c | 12 ++++++------ examples/l3fwd/meson.build | 1 - 7 files changed, 37 insertions(+), 34 deletions(-) diff --git a/examples/l3fwd/l3fwd.h b/examples/l3fwd/l3fwd.h index 471e3b488f..349fc37c79 100644 --- a/examples/l3fwd/l3fwd.h +++ b/examples/l3fwd/l3fwd.h @@ -99,7 +99,7 @@ extern struct rte_ether_addr ports_eth_addr[RTE_MAX_ETHPORTS]; extern uint32_t enabled_port_mask; /* Used only in exact match mode. */ -extern int ipv6; /**< ipv6 is false by default. */ +extern bool ipv6_enabled; /**< ipv6 is false by default. */ extern uint32_t hash_entry_number; extern xmm_t val_eth[RTE_MAX_ETHPORTS]; diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c index 58c54ed77e..d8748a0edd 100644 --- a/examples/l3fwd/l3fwd_em.c +++ b/examples/l3fwd/l3fwd_em.c @@ -211,9 +211,9 @@ ipv6_hash_crc(const void *data, __rte_unused uint32_t data_len, static alignas(RTE_CACHE_LINE_SIZE) uint8_t ipv4_l3fwd_out_if[L3FWD_HASH_ENTRIES]; static alignas(RTE_CACHE_LINE_SIZE) uint8_t ipv6_l3fwd_out_if[L3FWD_HASH_ENTRIES]; -static rte_xmm_t mask0; -static rte_xmm_t mask1; -static rte_xmm_t mask2; +static rte_xmm_t xmm_mask0; +static rte_xmm_t xmm_mask1; +static rte_xmm_t xmm_mask2; #if defined(__SSE2__) static inline xmm_t @@ -275,7 +275,7 @@ em_get_ipv4_dst_port(void *ipv4_hdr, uint16_t portid, void *lookup_struct) * Get 5 tuple: dst port, src port, dst IP address, * src IP address and protocol. */ - key.xmm = em_mask_key(ipv4_hdr, mask0.x); + key.xmm = em_mask_key(ipv4_hdr, xmm_mask0.x); /* Find destination port */ ret = rte_hash_lookup(ipv4_l3fwd_lookup_struct, (const void *)&key); @@ -298,7 +298,7 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct) void *data2 = ((uint8_t *)ipv6_hdr) + sizeof(xmm_t) + sizeof(xmm_t); /* Get part of 5 tuple: src IP address lower 96 bits and protocol */ - key.xmm[0] = em_mask_key(data0, mask1.x); + key.xmm[0] = em_mask_key(data0, xmm_mask1.x); /* * Get part of 5 tuple: dst IP address lower 96 bits @@ -314,7 +314,7 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct) * Get part of 5 tuple: dst port and src port * and dst IP address higher 32 bits. */ - key.xmm[2] = em_mask_key(data2, mask2.x); + key.xmm[2] = em_mask_key(data2, xmm_mask2.x); /* Find destination port */ ret = rte_hash_lookup(ipv6_l3fwd_lookup_struct, (const void *)&key); @@ -375,8 +375,9 @@ populate_ipv4_flow_into_table(const struct rte_hash *h) char srcbuf[INET6_ADDRSTRLEN]; char dstbuf[INET6_ADDRSTRLEN]; - mask0 = (rte_xmm_t){.u32 = {BIT_8_TO_15, ALL_32_BITS, - ALL_32_BITS, ALL_32_BITS} }; + xmm_mask0 = (rte_xmm_t) { + .u32 = { BIT_8_TO_15, ALL_32_BITS, ALL_32_BITS, ALL_32_BITS } + }; for (i = 0; i < route_num_v4; i++) { struct em_rule *entry; @@ -427,10 +428,13 @@ populate_ipv6_flow_into_table(const struct rte_hash *h) char srcbuf[INET6_ADDRSTRLEN]; char dstbuf[INET6_ADDRSTRLEN]; - mask1 = (rte_xmm_t){.u32 = {BIT_16_TO_23, ALL_32_BITS, - ALL_32_BITS, ALL_32_BITS} }; + xmm_mask1 = (rte_xmm_t){ + .u32 = { BIT_16_TO_23, ALL_32_BITS, ALL_32_BITS, ALL_32_BITS } + }; - mask2 = (rte_xmm_t){.u32 = {ALL_32_BITS, ALL_32_BITS, 0, 0} }; + xmm_mask2 = (rte_xmm_t){ + .u32 = { ALL_32_BITS, ALL_32_BITS, 0, 0 } + }; for (i = 0; i < route_num_v6; i++) { struct em_rule *entry; @@ -507,11 +511,11 @@ em_check_ptype(int portid) } } - if (!ipv6 && !ptype_l3_ipv4_ext) { + if (!ipv6_enabled && !ptype_l3_ipv4_ext) { printf("port %d cannot parse RTE_PTYPE_L3_IPV4_EXT\n", portid); return 0; } - if (ipv6 && !ptype_l3_ipv6_ext) { + if (ipv6_enabled && !ptype_l3_ipv6_ext) { printf("port %d cannot parse RTE_PTYPE_L3_IPV6_EXT\n", portid); return 0; } @@ -1010,7 +1014,7 @@ setup_hash(const int socketid) * Use data from ipv4/ipv6 l3fwd config file * directly to initialize the hash table. */ - if (ipv6 == 0) { + if (!ipv6_enabled) { /* populate the ipv4 hash */ populate_ipv4_flow_into_table( ipv4_l3fwd_em_lookup_struct[socketid]); diff --git a/examples/l3fwd/l3fwd_em_hlm.h b/examples/l3fwd/l3fwd_em_hlm.h index c1d819997a..ccf5e34496 100644 --- a/examples/l3fwd/l3fwd_em_hlm.h +++ b/examples/l3fwd/l3fwd_em_hlm.h @@ -31,7 +31,7 @@ em_get_dst_port_ipv4xN(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv4_5tuple(m[i], mask0.x, &key[i]); + get_ipv4_5tuple(m[i], xmm_mask0.x, &key[i]); key_array[i] = &key[i]; } @@ -58,7 +58,7 @@ em_get_dst_port_ipv6xN(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv6_5tuple(m[i], mask1.x, mask2.x, &key[i]); + get_ipv6_5tuple(m[i], xmm_mask1.x, xmm_mask2.x, &key[i]); key_array[i] = &key[i]; } @@ -85,7 +85,7 @@ em_get_dst_port_ipv4xN_events(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv4_5tuple(m[i], mask0.x, &key[i]); + get_ipv4_5tuple(m[i], xmm_mask0.x, &key[i]); key_array[i] = &key[i]; } @@ -112,7 +112,7 @@ em_get_dst_port_ipv6xN_events(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv6_5tuple(m[i], mask1.x, mask2.x, &key[i]); + get_ipv6_5tuple(m[i], xmm_mask1.x, xmm_mask2.x, &key[i]); key_array[i] = &key[i]; } diff --git a/examples/l3fwd/l3fwd_lpm.c b/examples/l3fwd/l3fwd_lpm.c index a71eee69ec..2d2651e750 100644 --- a/examples/l3fwd/l3fwd_lpm.c +++ b/examples/l3fwd/l3fwd_lpm.c @@ -681,12 +681,12 @@ lpm_check_ptype(int portid) ptype_l3_ipv6 = 1; } - if (!ipv6 && !ptype_l3_ipv4) { + if (!ipv6_enabled && !ptype_l3_ipv4) { printf("port %d cannot parse RTE_PTYPE_L3_IPV4\n", portid); return 0; } - if (ipv6 && !ptype_l3_ipv6) { + if (ipv6_enabled && !ptype_l3_ipv6) { printf("port %d cannot parse RTE_PTYPE_L3_IPV6\n", portid); return 0; } diff --git a/examples/l3fwd/l3fwd_route.h b/examples/l3fwd/l3fwd_route.h index b02b9cc11c..fd688504c6 100644 --- a/examples/l3fwd/l3fwd_route.h +++ b/examples/l3fwd/l3fwd_route.h @@ -14,14 +14,14 @@ #define IPV6_ADDR_U32 (IPV6_ADDR_LEN / sizeof(uint32_t)) #define GET_CB_FIELD(in, fd, base, lim, dlm) do { \ - unsigned long val; \ - char *end; \ + unsigned long _val; \ + char *_end; \ errno = 0; \ - val = strtoul((in), &end, (base)); \ - if (errno != 0 || end[0] != (dlm) || val > (lim)) \ + _val = strtoul((in), &_end, (base)); \ + if (errno != 0 || _end[0] != (dlm) || _val > (lim)) \ return -EINVAL; \ - (fd) = (typeof(fd))val; \ - (in) = end + 1; \ + (fd) = (typeof(fd))_val; \ + (in) = _end + 1; \ } while (0) struct ipv4_l3fwd_route { diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index 4c64194794..8e65472d3d 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -94,7 +94,7 @@ xmm_t val_eth[RTE_MAX_ETHPORTS]; uint32_t enabled_port_mask; /* Used only in exact match mode. */ -int ipv6; /**< ipv6 is false by default. */ +bool ipv6_enabled; /**< ipv6 is false by default. */ struct lcore_conf lcore_conf[RTE_MAX_LCORE]; @@ -871,7 +871,7 @@ parse_args(int argc, char **argv) char **argvopt; int option_index; char *prgname = argv[0]; - uint8_t lcore_params = 0; + bool config_parsed = false; #ifdef RTE_LIB_EVENTDEV uint8_t eventq_sched = 0; uint8_t eth_rx_q = 0; @@ -924,7 +924,7 @@ parse_args(int argc, char **argv) print_usage(prgname); return -1; } - lcore_params = 1; + config_parsed = true; break; case CMD_LINK_OPT_ETH_LINK_SPEED_NUM: speed_num = atoi(optarg); @@ -966,7 +966,7 @@ parse_args(int argc, char **argv) break; case CMD_LINE_OPT_IPV6_NUM: - ipv6 = 1; + ipv6_enabled = true; break; case CMD_LINE_OPT_MAX_PKT_LEN_NUM: @@ -1056,9 +1056,9 @@ parse_args(int argc, char **argv) } } - RTE_SET_USED(lcore_params); /* needed if no eventdev block */ + RTE_SET_USED(config_parsed); /* needed if no eventdev block */ #ifdef RTE_LIB_EVENTDEV - if (evt_rsrc->enabled && lcore_params) { + if (evt_rsrc->enabled && config_parsed) { fprintf(stderr, "lcore config is not valid when event mode is selected\n"); return -1; } diff --git a/examples/l3fwd/meson.build b/examples/l3fwd/meson.build index a5c47c02b4..74144c7979 100644 --- a/examples/l3fwd/meson.build +++ b/examples/l3fwd/meson.build @@ -22,4 +22,3 @@ if dpdk_conf.has('RTE_LIB_EVENTDEV') deps += 'eventdev' endif cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH 23/23] examples/l3fwd-power: fix shadow variable warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (21 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 22/23] examples/l3fwd: fix shadow variable warnings Stephen Hemminger @ 2026-04-07 3:49 ` Stephen Hemminger 2026-04-07 9:22 ` [PATCH 00/23] examples: enable -Wshadow across all examples Bruce Richardson 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger 24 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 3:49 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Anatoly Burakov, Sivaprasad Tummala Rename function parameters to avoid shadowing the file-scope static arrays ipv4_l3fwd_lookup_struct and ipv6_l3fwd_lookup_struct. The new parameter names ipv4_lookup_struct and ipv6_lookup_struct match the member names used in struct lcore_conf. Fixes warnings with -Wshadow for get_ipv4_dst_port (both exact-match and LPM variants) and get_ipv6_dst_port. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- examples/l3fwd-power/main.c | 12 ++++++------ examples/l3fwd-power/meson.build | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 02ec17d799..ff0e61e639 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -552,7 +552,7 @@ print_ipv6_key(struct ipv6_5tuple key) static inline uint16_t get_ipv4_dst_port(struct rte_ipv4_hdr *ipv4_hdr, uint16_t portid, - lookup_struct_t * ipv4_l3fwd_lookup_struct) + lookup_struct_t *ipv4_lookup_struct) { struct ipv4_5tuple key; struct rte_tcp_hdr *tcp; @@ -585,13 +585,13 @@ get_ipv4_dst_port(struct rte_ipv4_hdr *ipv4_hdr, uint16_t portid, } /* Find destination port */ - ret = rte_hash_lookup(ipv4_l3fwd_lookup_struct, (const void *)&key); + ret = rte_hash_lookup(ipv4_lookup_struct, (const void *)&key); return ((ret < 0) ? portid : ipv4_l3fwd_out_if[ret]); } static inline uint16_t get_ipv6_dst_port(struct rte_ipv6_hdr *ipv6_hdr, uint16_t portid, - lookup_struct_t *ipv6_l3fwd_lookup_struct) + lookup_struct_t *ipv6_lookup_struct) { struct ipv6_5tuple key; struct rte_tcp_hdr *tcp; @@ -625,7 +625,7 @@ get_ipv6_dst_port(struct rte_ipv6_hdr *ipv6_hdr, uint16_t portid, } /* Find destination port */ - ret = rte_hash_lookup(ipv6_l3fwd_lookup_struct, (const void *)&key); + ret = rte_hash_lookup(ipv6_lookup_struct, (const void *)&key); return ((ret < 0) ? portid : ipv6_l3fwd_out_if[ret]); } #endif @@ -633,11 +633,11 @@ get_ipv6_dst_port(struct rte_ipv6_hdr *ipv6_hdr, uint16_t portid, #if (APP_LOOKUP_METHOD == APP_LOOKUP_LPM) static inline uint16_t get_ipv4_dst_port(struct rte_ipv4_hdr *ipv4_hdr, uint16_t portid, - lookup_struct_t *ipv4_l3fwd_lookup_struct) + lookup_struct_t *ipv4_lookup_struct) { uint32_t next_hop; - return ((rte_lpm_lookup(ipv4_l3fwd_lookup_struct, + return ((rte_lpm_lookup(ipv4_lookup_struct, rte_be_to_cpu_32(ipv4_hdr->dst_addr), &next_hop) == 0)? next_hop : portid); } diff --git a/examples/l3fwd-power/meson.build b/examples/l3fwd-power/meson.build index e45cda86f9..5ff4466cac 100644 --- a/examples/l3fwd-power/meson.build +++ b/examples/l3fwd-power/meson.build @@ -13,4 +13,3 @@ sources = files( 'perf_core.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* Re: [PATCH 00/23] examples: enable -Wshadow across all examples 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (22 preceding siblings ...) 2026-04-07 3:49 ` [PATCH 23/23] examples/l3fwd-power: " Stephen Hemminger @ 2026-04-07 9:22 ` Bruce Richardson 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger 24 siblings, 0 replies; 51+ messages in thread From: Bruce Richardson @ 2026-04-07 9:22 UTC (permalink / raw) To: Stephen Hemminger; +Cc: dev On Mon, Apr 06, 2026 at 08:49:26PM -0700, Stephen Hemminger wrote: > Several DPDK examples had -Wshadow disabled via no_shadow_cflag in > their meson.build files. This series fixes all shadow variable > warnings and removes the suppression flag, so that -Wshadow is > enabled uniformly across every example. > > The fixes fall into three categories: > - Renaming function parameters or local variables that shadow > globals (most patches) > - Removing unused function parameters that duplicated globals > (dma, bond, flow_filtering, ipsec-secgw, vhost, qos_sched) > - Simply removing no_shadow_cflag where there were no warnings > (vm_power_manage, bbdev_app, l2fwd-crypto, l2fwd-event, > l3fwd-graph) > > All the patches are listed as fixes they are not worth > back porting so no Fixes: tag is given. > > Stephen Hemminger (23): > examples/ethtool: fix shadow variable warning > examples/eventdev_pipeline: fix shadow variable warning > examples/dma: fix shadow variable warnings > examples/packet_ordering: fix shadow variable warning > examples/bond: fix shadow variable warnings > examples/vmdq: fix shadow variable warning > examples/server_node_efd: fix shadowed variable > examples/flow_filtering: fix shadowed variables > examples/ipsec-secgw: fix shadowed variables > examples/ip_pipeline: fix shadow variable > examples/multi_process: fix shadowed variable > examples/vm_power_manage: enable shadow warnings > examples/bbdev_app: enable shadow warnings > examples/ptpclient: fix shadow variable warnings > examples/vhost: fix shadow warnings > examples/qos_sched: eliminate shadowed variables > examples/l2fwd-jobstats: fix shadowed variable > examples/l2fwd-crypto: remove no shadow flag > examples/l2fwd-event: remove no shadow flag > examples/l2fwd-keepalive: fix shadow variable warning > examples/l3fwd-graph: remove no shadow flag > examples/l3fwd: fix shadow variable warnings > examples/l3fwd-power: fix shadow variable warnings > Thanks for the cleanup, Stephen. Series-Acked-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 51+ messages in thread
* [PATCH v2 00/23] examples: fix -Wshadow warnings 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger ` (23 preceding siblings ...) 2026-04-07 9:22 ` [PATCH 00/23] examples: enable -Wshadow across all examples Bruce Richardson @ 2026-04-07 15:15 ` Stephen Hemminger 2026-04-07 15:15 ` [PATCH v2 01/23] examples/ethtool: resolve shadow variable warnings Stephen Hemminger ` (22 more replies) 24 siblings, 23 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:15 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Several DPDK examples had -Wshadow disabled via no_shadow_cflag in their meson.build files. This series fixes all shadow variable warnings and removes the suppression flag, so that -Wshadow is enabled uniformly across every example. The fixes fall into three categories: - Renaming function parameters or local variables that shadow globals (most patches) - Removing unused function parameters that duplicated globals (dma, bond, flow_filtering, ipsec-secgw, vhost, qos_sched) - Simply removing no_shadow_cflag where there were no warnings (vm_power_manage, bbdev_app, l2fwd-crypto, l2fwd-event, l3fwd-graph) v2 - fix additional shadow warnings only visible with clang Stephen Hemminger (23): examples/ethtool: resolve shadow variable warnings examples/eventdev_pipeline: resolve shadow variable warning examples/dma: resolve shadow variable warnings examples/packet_ordering: resolve shadow variable warning examples/bond: resolve shadow variable warnings examples/vmdq: resolve shadow variable warning examples/server_node_efd: resolve shadow variable warning examples/flow_filtering: resolve shadowed variable warnings examples/ipsec-secgw: resolve shadowed variable warnings examples/ip_pipeline: resolve shadow variable warning examples/multi_process: resolve shadowed variable warnings examples/vm_power_manage: enable shadow warnings examples/bbdev_app: enable shadow warnings examples/ptpclient: resolve shadow variable warnings examples/vhost: resolve shadow warnings examples/qos_sched: eliminate shadowed variables examples/l2fwd-jobstats: resolve shadowed variable examples/l2fwd-crypto: resolve shadow variable examples/l2fwd-event: resolve shadowed variable examples/l2fwd-keepalive: resolve shadow variable warning examples/l3fwd-graph: resolve shadow variable warning examples/l3fwd: resolve shadow variable warnings examples/l3fwd-power: resolve shadow variable warnings examples/bbdev_app/main.c | 4 +- examples/bbdev_app/meson.build | 1 - examples/bond/main.c | 21 ++- examples/bond/meson.build | 1 - examples/dma/dmafwd.c | 10 +- examples/dma/meson.build | 1 - examples/ethtool/ethtool-app/main.c | 4 +- examples/ethtool/meson.build | 1 - examples/eventdev_pipeline/meson.build | 1 - .../eventdev_pipeline/pipeline_worker_tx.c | 4 +- examples/flow_filtering/flow_skeleton.c | 10 +- examples/flow_filtering/main.c | 4 +- examples/flow_filtering/meson.build | 1 - examples/ip_pipeline/cli.c | 9 +- examples/ip_pipeline/meson.build | 1 - examples/ipsec-secgw/ipsec-secgw.c | 17 +-- examples/ipsec-secgw/ipsec.c | 3 +- examples/ipsec-secgw/ipsec.h | 1 - examples/ipsec-secgw/ipsec_worker.c | 30 ++-- examples/ipsec-secgw/ipsec_worker.h | 4 +- examples/ipsec-secgw/meson.build | 1 - examples/ipsec-secgw/sa.c | 34 ++--- examples/l2fwd-crypto/main.c | 50 +++---- examples/l2fwd-crypto/meson.build | 1 - examples/l2fwd-event/main.c | 15 +- examples/l2fwd-event/meson.build | 1 - examples/l2fwd-jobstats/main.c | 6 +- examples/l2fwd-jobstats/meson.build | 1 - examples/l2fwd-keepalive/main.c | 2 +- examples/l2fwd-keepalive/meson.build | 1 - examples/l3fwd-graph/main.c | 8 +- examples/l3fwd-graph/meson.build | 1 - examples/l3fwd-power/main.c | 12 +- examples/l3fwd-power/meson.build | 1 - examples/l3fwd/l3fwd.h | 2 +- examples/l3fwd/l3fwd_em.c | 32 ++-- examples/l3fwd/l3fwd_em_hlm.h | 8 +- examples/l3fwd/l3fwd_lpm.c | 4 +- examples/l3fwd/l3fwd_route.h | 12 +- examples/l3fwd/main.c | 68 ++++----- examples/l3fwd/meson.build | 1 - .../client_server_mp/mp_server/args.c | 12 +- .../client_server_mp/mp_server/meson.build | 1 - examples/packet_ordering/main.c | 6 +- examples/packet_ordering/meson.build | 1 - examples/ptpclient/meson.build | 1 - examples/ptpclient/ptpclient.c | 138 +++++++++--------- examples/qos_sched/cfg_file.c | 12 +- examples/qos_sched/cfg_file.h | 4 +- examples/qos_sched/init.c | 4 +- examples/qos_sched/meson.build | 1 - examples/server_node_efd/efd_server/args.c | 6 +- .../server_node_efd/efd_server/meson.build | 1 - examples/vhost/main.c | 19 +-- examples/vhost/meson.build | 1 - .../vm_power_manager/guest_cli/meson.build | 1 - examples/vm_power_manager/meson.build | 1 - examples/vmdq/main.c | 8 +- examples/vmdq/meson.build | 1 - 59 files changed, 288 insertions(+), 319 deletions(-) -- 2.53.0 ^ permalink raw reply [flat|nested] 51+ messages in thread
* [PATCH v2 01/23] examples/ethtool: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger @ 2026-04-07 15:15 ` Stephen Hemminger 2026-04-08 0:32 ` fengchengwen 2026-04-07 15:15 ` [PATCH v2 02/23] examples/eventdev_pipeline: resolve shadow variable warning Stephen Hemminger ` (21 subsequent siblings) 22 siblings, 1 reply; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:15 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson Fix shadow variable warning by renaming the function parameter from 'app_cfg' to 'ptr_cfg' to avoid shadowing the global variable. ../examples/ethtool/ethtool-app/main.c:89:44: warning: declaration of 'app_cfg' shadows a global declaration [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/ethtool/ethtool-app/main.c | 4 ++-- examples/ethtool/meson.build | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c index b6bbae70d2..6545eb322d 100644 --- a/examples/ethtool/ethtool-app/main.c +++ b/examples/ethtool/ethtool-app/main.c @@ -86,7 +86,7 @@ void mark_port_newmac(int idx_port) ptr_port->port_dirty = 1; } -static void setup_ports(struct app_config *app_cfg, int cnt_ports) +static void setup_ports(struct app_config *ptr_cfg, int cnt_ports) { int idx_port; int size_pktpool; @@ -101,7 +101,7 @@ static void setup_ports(struct app_config *app_cfg, int cnt_ports) cfg_port.txmode.mq_mode = RTE_ETH_MQ_TX_NONE; for (idx_port = 0; idx_port < cnt_ports; idx_port++) { - struct app_port *ptr_port = &app_cfg->ports[idx_port]; + struct app_port *ptr_port = &ptr_cfg->ports[idx_port]; ret = rte_eth_dev_info_get(idx_port, &dev_info); if (ret != 0) diff --git a/examples/ethtool/meson.build b/examples/ethtool/meson.build index 3ad948d109..d7f63d48af 100644 --- a/examples/ethtool/meson.build +++ b/examples/ethtool/meson.build @@ -17,7 +17,6 @@ sources = files( 'ethtool-app/main.c', ) includes = include_directories('lib', 'ethtool-app') -cflags += no_shadow_cflag deps += 'bus_pci' if dpdk_conf.has('RTE_NET_IXGBE') -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* Re: [PATCH v2 01/23] examples/ethtool: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 01/23] examples/ethtool: resolve shadow variable warnings Stephen Hemminger @ 2026-04-08 0:32 ` fengchengwen 0 siblings, 0 replies; 51+ messages in thread From: fengchengwen @ 2026-04-08 0:32 UTC (permalink / raw) To: Stephen Hemminger, dev; +Cc: Bruce Richardson Acked-by: Chengwen Feng <fengchengwen@huawei.com> On 4/7/2026 11:15 PM, Stephen Hemminger wrote: > Fix shadow variable warning by renaming the function parameter > from 'app_cfg' to 'ptr_cfg' to avoid shadowing the global variable. > > ../examples/ethtool/ethtool-app/main.c:89:44: warning: declaration of > 'app_cfg' shadows a global declaration [-Wshadow] > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > Acked-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 51+ messages in thread
* [PATCH v2 02/23] examples/eventdev_pipeline: resolve shadow variable warning 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger 2026-04-07 15:15 ` [PATCH v2 01/23] examples/ethtool: resolve shadow variable warnings Stephen Hemminger @ 2026-04-07 15:15 ` Stephen Hemminger 2026-04-07 15:15 ` [PATCH v2 03/23] examples/dma: resolve shadow variable warnings Stephen Hemminger ` (20 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:15 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson Fix shadow variable warning by reusing the existing 'ret' variable instead of declaring a new one with the same name. ../examples/eventdev_pipeline/pipeline_worker_tx.c:877:25: warning: declaration of 'ret' shadows a previous local [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/eventdev_pipeline/meson.build | 1 - examples/eventdev_pipeline/pipeline_worker_tx.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/eventdev_pipeline/meson.build b/examples/eventdev_pipeline/meson.build index c317f4b3e2..b8f5cfe109 100644 --- a/examples/eventdev_pipeline/meson.build +++ b/examples/eventdev_pipeline/meson.build @@ -13,4 +13,3 @@ sources = files( 'pipeline_worker_generic.c', 'pipeline_worker_tx.c', ) -cflags += no_shadow_cflag diff --git a/examples/eventdev_pipeline/pipeline_worker_tx.c b/examples/eventdev_pipeline/pipeline_worker_tx.c index f7b7937d6a..a3090e3b49 100644 --- a/examples/eventdev_pipeline/pipeline_worker_tx.c +++ b/examples/eventdev_pipeline/pipeline_worker_tx.c @@ -874,8 +874,8 @@ init_adapters(uint16_t nb_ports) service.callback = service_rx_adapter; service.callback_userdata = (void *)adptr_services; - int32_t ret = rte_service_component_register(&service, - &fdata->rxadptr_service_id); + ret = rte_service_component_register(&service, + &fdata->rxadptr_service_id); if (ret) rte_exit(EXIT_FAILURE, "Rx adapter service register failed"); -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 03/23] examples/dma: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger 2026-04-07 15:15 ` [PATCH v2 01/23] examples/ethtool: resolve shadow variable warnings Stephen Hemminger 2026-04-07 15:15 ` [PATCH v2 02/23] examples/eventdev_pipeline: resolve shadow variable warning Stephen Hemminger @ 2026-04-07 15:15 ` Stephen Hemminger 2026-04-08 0:30 ` fengchengwen 2026-04-07 15:16 ` [PATCH v2 04/23] examples/packet_ordering: resolve shadow variable warning Stephen Hemminger ` (19 subsequent siblings) 22 siblings, 1 reply; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:15 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Chengwen Feng, Kevin Laatz Fix shadow variable warnings by: - Renaming 'copy_mode' parameter to 'mode' in dma_parse_copy_mode() - Removing 'nb_queues' parameter from port_init() and using the global variable directly, since it's always called with the global nb_queues value ../examples/dma/dmafwd.c:593:33: warning: declaration of 'copy_mode' shadows a global declaration [-Wshadow] ../examples/dma/dmafwd.c:881:68: warning: declaration of 'nb_queues' shadows a global declaration [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/dma/dmafwd.c | 10 +++++----- examples/dma/meson.build | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/dma/dmafwd.c b/examples/dma/dmafwd.c index 5ba0aaa40b..a8ed09e6ae 100644 --- a/examples/dma/dmafwd.c +++ b/examples/dma/dmafwd.c @@ -590,11 +590,11 @@ dma_parse_portmask(const char *portmask) } static copy_mode_t -dma_parse_copy_mode(const char *copy_mode) +dma_parse_copy_mode(const char *mode) { - if (strcmp(copy_mode, COPY_MODE_SW) == 0) + if (strcmp(mode, COPY_MODE_SW) == 0) return COPY_MODE_SW_NUM; - else if (strcmp(copy_mode, COPY_MODE_DMA) == 0) + else if (strcmp(mode, COPY_MODE_DMA) == 0) return COPY_MODE_DMA_NUM; return COPY_MODE_INVALID_NUM; @@ -878,7 +878,7 @@ config_port_max_pkt_len(struct rte_eth_conf *conf, * coming from the mbuf_pool passed as a parameter. */ static inline void -port_init(uint16_t portid, struct rte_mempool *mbuf_pool, uint16_t nb_queues) +port_init(uint16_t portid, struct rte_mempool *mbuf_pool) { /* Configuring port to use RSS for multiple RX queues. 8< */ static const struct rte_eth_conf port_conf = { @@ -1061,7 +1061,7 @@ main(int argc, char **argv) /* Initialize each port. 8< */ cfg.nb_ports = 0; RTE_ETH_FOREACH_DEV(portid) - port_init(portid, dma_pktmbuf_pool, nb_queues); + port_init(portid, dma_pktmbuf_pool); /* >8 End of initializing each port. */ /* Initialize port xstats */ diff --git a/examples/dma/meson.build b/examples/dma/meson.build index 6a65de127e..124f9476fc 100644 --- a/examples/dma/meson.build +++ b/examples/dma/meson.build @@ -13,4 +13,3 @@ deps += ['argparse', 'dmadev'] sources = files( 'dmafwd.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* Re: [PATCH v2 03/23] examples/dma: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 03/23] examples/dma: resolve shadow variable warnings Stephen Hemminger @ 2026-04-08 0:30 ` fengchengwen 0 siblings, 0 replies; 51+ messages in thread From: fengchengwen @ 2026-04-08 0:30 UTC (permalink / raw) To: Stephen Hemminger, dev; +Cc: Bruce Richardson, Kevin Laatz Acked-by: Chengwen Feng <fengchengwen@huawei.com> On 4/7/2026 11:15 PM, Stephen Hemminger wrote: > Fix shadow variable warnings by: > - Renaming 'copy_mode' parameter to 'mode' in dma_parse_copy_mode() > - Removing 'nb_queues' parameter from port_init() and using the > global variable directly, since it's always called with the > global nb_queues value > > ../examples/dma/dmafwd.c:593:33: warning: declaration of 'copy_mode' > shadows a global declaration [-Wshadow] > ../examples/dma/dmafwd.c:881:68: warning: declaration of 'nb_queues' > shadows a global declaration [-Wshadow] > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > Acked-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 51+ messages in thread
* [PATCH v2 04/23] examples/packet_ordering: resolve shadow variable warning 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (2 preceding siblings ...) 2026-04-07 15:15 ` [PATCH v2 03/23] examples/dma: resolve shadow variable warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 05/23] examples/bond: resolve shadow variable warnings Stephen Hemminger ` (18 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Volodymyr Fialko Fix shadow variable warning by renaming the parameter from 'portmask' to 'mask' in parse_portmask() to avoid shadowing the global variable. ../examples/packet_ordering/main.c:147:28: warning: declaration of 'portmask' shadows a global declaration [-Wshadow] Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/packet_ordering/main.c | 6 +++--- examples/packet_ordering/meson.build | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c index 748fe0826a..0279faf081 100644 --- a/examples/packet_ordering/main.c +++ b/examples/packet_ordering/main.c @@ -144,14 +144,14 @@ print_usage(const char *prgname) } static int -parse_portmask(const char *portmask) +parse_portmask(const char *mask) { unsigned long pm; char *end = NULL; /* parse hexadecimal string */ - pm = strtoul(portmask, &end, 16); - if ((portmask[0] == '\0') || (end == NULL) || (*end != '\0')) + pm = strtoul(mask, &end, 16); + if ((mask[0] == '\0') || (end == NULL) || (*end != '\0')) return 0; return pm; diff --git a/examples/packet_ordering/meson.build b/examples/packet_ordering/meson.build index 092a5258ef..f8be053fb0 100644 --- a/examples/packet_ordering/meson.build +++ b/examples/packet_ordering/meson.build @@ -11,4 +11,3 @@ deps += 'reorder' sources = files( 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 05/23] examples/bond: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (3 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 04/23] examples/packet_ordering: resolve shadow variable warning Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 06/23] examples/vmdq: resolve shadow variable warning Stephen Hemminger ` (17 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Chas Williams, Min Hu (Connor) Fix shadow variable warnings - remove mbuf_pool parameters since member_port_init() and bond_port_init() always called with same pool. - rename members array used in show command - make the variables static Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/bond/main.c | 21 ++++++++++----------- examples/bond/meson.build | 1 - 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/bond/main.c b/examples/bond/main.c index 4e8eeb7a5e..99359cd6fb 100644 --- a/examples/bond/main.c +++ b/examples/bond/main.c @@ -96,13 +96,12 @@ ":%02"PRIx8":%02"PRIx8":%02"PRIx8, \ RTE_ETHER_ADDR_BYTES(&addr)) -uint16_t members[RTE_MAX_ETHPORTS]; -uint16_t members_count; +static uint16_t members[RTE_MAX_ETHPORTS]; +static uint16_t members_count; +static struct rte_mempool *mbuf_pool; static uint16_t BOND_PORT = 0xffff; -static struct rte_mempool *mbuf_pool; - static struct rte_eth_conf port_conf = { .rxmode = { .mq_mode = RTE_ETH_MQ_RX_NONE, @@ -119,7 +118,7 @@ static struct rte_eth_conf port_conf = { }; static void -member_port_init(uint16_t portid, struct rte_mempool *mbuf_pool) +member_port_init(uint16_t portid) { int retval; uint16_t nb_rxd = RTE_RX_DESC_DEFAULT; @@ -204,7 +203,7 @@ member_port_init(uint16_t portid, struct rte_mempool *mbuf_pool) } static void -bond_port_init(struct rte_mempool *mbuf_pool) +bond_port_init(void) { int retval; uint8_t i; @@ -462,10 +461,10 @@ static inline void get_string(struct cmd_send_result *res, char *buf, uint8_t si ((unsigned)((unsigned char *)&(res->ip.addr.ipv4))[3]) ); } + void cmd_send_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct cmd_send_result *res = parsed_result; char ip_str[INET6_ADDRSTRLEN]; @@ -635,7 +634,7 @@ cmd_quit_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unus void cmd_show_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unused void *data) { - uint16_t members[16] = {0}; + uint16_t act_members[16] = {0}; uint8_t len = 16; struct rte_ether_addr addr; uint16_t i; @@ -658,7 +657,7 @@ cmd_show_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unus cmdline_printf(cl, "Active_members:%d " "packets received:Tot:%d Arp:%d IPv4:%d\n", - rte_eth_bond_active_members_get(BOND_PORT, members, len), + rte_eth_bond_active_members_get(BOND_PORT, act_members, len), global_flag_stru_p->port_packets[0], global_flag_stru_p->port_packets[1], global_flag_stru_p->port_packets[2]); @@ -706,11 +705,11 @@ main(int argc, char *argv[]) /* initialize all ports */ members_count = nb_ports; RTE_ETH_FOREACH_DEV(i) { - member_port_init(i, mbuf_pool); + member_port_init(i); members[i] = i; } - bond_port_init(mbuf_pool); + bond_port_init(); rte_spinlock_init(&global_flag_stru_p->lock); diff --git a/examples/bond/meson.build b/examples/bond/meson.build index 45389998e4..5a6db9a870 100644 --- a/examples/bond/meson.build +++ b/examples/bond/meson.build @@ -11,7 +11,6 @@ allow_experimental_apis = true sources = files( 'main.c', ) -cflags += no_shadow_cflag cmd_h = custom_target('commands_hdr', output: 'commands.h', -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 06/23] examples/vmdq: resolve shadow variable warning 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (4 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 05/23] examples/bond: resolve shadow variable warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 07/23] examples/server_node_efd: " Stephen Hemminger ` (16 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson Rename parameter of get_eth_conf to avoid conflicting with global variable. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/vmdq/main.c | 8 ++++---- examples/vmdq/meson.build | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index 12ef5bffc2..8c9d885090 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -135,19 +135,19 @@ static struct rte_ether_addr vmdq_ports_eth_addr[RTE_MAX_ETHPORTS]; /* Building correct configuration for vdmq. 8< */ static inline int -get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_pools) +get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t max_pools) { struct rte_eth_vmdq_rx_conf conf; unsigned i; - conf.nb_queue_pools = (enum rte_eth_nb_pools)num_pools; - conf.nb_pool_maps = num_pools; + conf.nb_queue_pools = (enum rte_eth_nb_pools)max_pools; + conf.nb_pool_maps = max_pools; conf.enable_default_pool = 0; conf.default_pool = 0; /* set explicit value, even if not used */ for (i = 0; i < conf.nb_pool_maps; i++) { conf.pool_map[i].vlan_id = vlan_tags[i]; - conf.pool_map[i].pools = (1UL << (i % num_pools)); + conf.pool_map[i].pools = (1UL << (i % max_pools)); } *eth_conf = vmdq_conf_default; diff --git a/examples/vmdq/meson.build b/examples/vmdq/meson.build index 6fcde9815c..441678bbe5 100644 --- a/examples/vmdq/meson.build +++ b/examples/vmdq/meson.build @@ -10,4 +10,3 @@ allow_experimental_apis = true sources = files( 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 07/23] examples/server_node_efd: resolve shadow variable warning 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (5 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 06/23] examples/vmdq: resolve shadow variable warning Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 08/23] examples/flow_filtering: resolve shadowed variable warnings Stephen Hemminger ` (15 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Yipeng Wang Argument to parse_numa_nodes() shadowed global variable. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/server_node_efd/efd_server/args.c | 6 +++--- examples/server_node_efd/efd_server/meson.build | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/server_node_efd/efd_server/args.c b/examples/server_node_efd/efd_server/args.c index 0e5e89705d..cb0486a952 100644 --- a/examples/server_node_efd/efd_server/args.c +++ b/examples/server_node_efd/efd_server/args.c @@ -81,15 +81,15 @@ parse_portmask(uint8_t max_ports, const char *portmask) * and convert to a number to store in the num_nodes variable */ static int -parse_num_nodes(const char *nodes) +parse_num_nodes(const char *arg) { char *end = NULL; unsigned long temp; - if (nodes == NULL || *nodes == '\0') + if (arg == NULL || *arg == '\0') return -1; - temp = strtoul(nodes, &end, 10); + temp = strtoul(arg, &end, 10); if (end == NULL || *end != '\0' || temp == 0) return -1; diff --git a/examples/server_node_efd/efd_server/meson.build b/examples/server_node_efd/efd_server/meson.build index fa0e15d73a..f1a6616738 100644 --- a/examples/server_node_efd/efd_server/meson.build +++ b/examples/server_node_efd/efd_server/meson.build @@ -10,4 +10,3 @@ allow_experimental_apis = true deps += 'efd' sources += files('args.c', 'init.c', 'main.c') includes += include_directories('../shared') -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 08/23] examples/flow_filtering: resolve shadowed variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (6 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 07/23] examples/server_node_efd: " Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 09/23] examples/ipsec-secgw: " Stephen Hemminger ` (14 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Ori Kam Rename places where argument name is shadowing a global variable. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/flow_filtering/flow_skeleton.c | 10 +++++----- examples/flow_filtering/main.c | 4 ++-- examples/flow_filtering/meson.build | 1 - 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/examples/flow_filtering/flow_skeleton.c b/examples/flow_filtering/flow_skeleton.c index 7e57b13b55..bc1d07fbe3 100644 --- a/examples/flow_filtering/flow_skeleton.c +++ b/examples/flow_filtering/flow_skeleton.c @@ -14,7 +14,7 @@ struct rte_flow_attr flow_attr; struct rte_flow_op_attr ops_attr = { .postpone = 0 }; static struct rte_flow * -create_flow_non_template(uint16_t port_id, struct rte_flow_attr *flow_attr, +create_flow_non_template(uint16_t port_id, struct rte_flow_attr *attr, struct rte_flow_item *patterns, struct rte_flow_action *actions, struct rte_flow_error *error) @@ -22,13 +22,13 @@ create_flow_non_template(uint16_t port_id, struct rte_flow_attr *flow_attr, struct rte_flow *flow = NULL; /* Validate the rule and create it. */ - if (rte_flow_validate(port_id, flow_attr, patterns, actions, error) == 0) - flow = rte_flow_create(port_id, flow_attr, patterns, actions, error); + if (rte_flow_validate(port_id, attr, patterns, actions, error) == 0) + flow = rte_flow_create(port_id, attr, patterns, actions, error); return flow; } static struct rte_flow * -create_flow_template(uint16_t port_id, struct rte_flow_op_attr *ops_attr, +create_flow_template(uint16_t port_id, struct rte_flow_op_attr *attr, struct rte_flow_item *patterns, struct rte_flow_action *actions, struct rte_flow_error *error) @@ -42,7 +42,7 @@ create_flow_template(uint16_t port_id, struct rte_flow_op_attr *ops_attr, return rte_flow_async_create(port_id, 1, /* Flow queue used to insert the rule. */ - ops_attr, + attr, table, patterns, 0, /* Pattern template index in the table. */ diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index 8ea6596ed4..f2124881a0 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -125,7 +125,7 @@ assert_link_status(void) } static void -configure_port_template(uint16_t port_id) +configure_port_template(void) { int ret; uint16_t std_queue; @@ -254,7 +254,7 @@ init_port(void) "rte_eth_dev_stop:err=%d, port=%u\n", ret, port_id); - configure_port_template(port_id); + configure_port_template(); ret = rte_eth_dev_start(port_id); if (ret < 0) rte_exit(EXIT_FAILURE, diff --git a/examples/flow_filtering/meson.build b/examples/flow_filtering/meson.build index e2d5850a19..e82d63ad8b 100644 --- a/examples/flow_filtering/meson.build +++ b/examples/flow_filtering/meson.build @@ -33,4 +33,3 @@ sources = files( # The code snippets are not utilized. cflags += '-Wno-unused-function' -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 09/23] examples/ipsec-secgw: resolve shadowed variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (7 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 08/23] examples/flow_filtering: resolve shadowed variable warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 10/23] examples/ip_pipeline: resolve shadow variable warning Stephen Hemminger ` (13 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Radu Nicolau, Akhil Goyal Rename variables where local variable shadows a global declaration. Remove unused lcore_conf parameter from sa_init(). Replace shadowed optarg with parameter named arg. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/ipsec-secgw/ipsec-secgw.c | 17 +++++++-------- examples/ipsec-secgw/ipsec.c | 3 +-- examples/ipsec-secgw/ipsec.h | 1 - examples/ipsec-secgw/ipsec_worker.c | 30 ++++++++++++------------- examples/ipsec-secgw/ipsec_worker.h | 4 ++-- examples/ipsec-secgw/meson.build | 1 - examples/ipsec-secgw/sa.c | 34 +++++++++++++---------------- 7 files changed, 41 insertions(+), 49 deletions(-) diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index fe489f9a56..eba7560c9b 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -1108,11 +1108,11 @@ print_app_sa_prm(const struct app_sa_prm *prm) } static int -parse_transfer_mode(struct eh_conf *conf, const char *optarg) +parse_transfer_mode(struct eh_conf *conf, const char *arg) { - if (!strcmp(CMD_LINE_ARG_POLL, optarg)) + if (!strcmp(CMD_LINE_ARG_POLL, arg)) conf->mode = EH_PKT_TRANSFER_MODE_POLL; - else if (!strcmp(CMD_LINE_ARG_EVENT, optarg)) + else if (!strcmp(CMD_LINE_ARG_EVENT, arg)) conf->mode = EH_PKT_TRANSFER_MODE_EVENT; else { printf("Unsupported packet transfer mode\n"); @@ -1123,18 +1123,18 @@ parse_transfer_mode(struct eh_conf *conf, const char *optarg) } static int -parse_schedule_type(struct eh_conf *conf, const char *optarg) +parse_schedule_type(struct eh_conf *conf, const char *arg) { struct eventmode_conf *em_conf = NULL; /* Get eventmode conf */ em_conf = conf->mode_params; - if (!strcmp(CMD_LINE_ARG_ORDERED, optarg)) + if (!strcmp(CMD_LINE_ARG_ORDERED, arg)) em_conf->ext_params.sched_type = RTE_SCHED_TYPE_ORDERED; - else if (!strcmp(CMD_LINE_ARG_ATOMIC, optarg)) + else if (!strcmp(CMD_LINE_ARG_ATOMIC, arg)) em_conf->ext_params.sched_type = RTE_SCHED_TYPE_ATOMIC; - else if (!strcmp(CMD_LINE_ARG_PARALLEL, optarg)) + else if (!strcmp(CMD_LINE_ARG_PARALLEL, arg)) em_conf->ext_params.sched_type = RTE_SCHED_TYPE_PARALLEL; else { printf("Unsupported queue schedule type\n"); @@ -3123,8 +3123,7 @@ main(int32_t argc, char **argv) if ((socket_ctx[socket_id].session_pool != NULL) && (socket_ctx[socket_id].sa_in == NULL) && (socket_ctx[socket_id].sa_out == NULL)) { - sa_init(&socket_ctx[socket_id], socket_id, lcore_conf, - eh_conf->mode_params); + sa_init(&socket_ctx[socket_id], socket_id, eh_conf->mode_params); sp4_init(&socket_ctx[socket_id], socket_id); sp6_init(&socket_ctx[socket_id], socket_id); rt_init(&socket_ctx[socket_id], socket_id); diff --git a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c index c65efd1c16..c3e37f76d1 100644 --- a/examples/ipsec-secgw/ipsec.c +++ b/examples/ipsec-secgw/ipsec.c @@ -415,7 +415,7 @@ int create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa, struct rte_ipsec_session *ips) { - int32_t ret = 0; + int ret = 0; void *sec_ctx; struct rte_security_session_conf sess_conf = { .action_type = ips->type, @@ -489,7 +489,6 @@ create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa, if (ips->type == RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO) { struct rte_flow_error err; - int ret = 0; sec_ctx = rte_eth_dev_get_sec_ctx(sa->portid); if (sec_ctx == NULL) { diff --git a/examples/ipsec-secgw/ipsec.h b/examples/ipsec-secgw/ipsec.h index e3cc43ef3b..20757eeba1 100644 --- a/examples/ipsec-secgw/ipsec.h +++ b/examples/ipsec-secgw/ipsec.h @@ -439,7 +439,6 @@ sa_spi_present(struct sa_ctx *sa_ctx, uint32_t spi, int inbound); void sa_init(struct socket_ctx *ctx, int32_t socket_id, - struct lcore_conf *lcore_conf, const struct eventmode_conf *em_conf); void diff --git a/examples/ipsec-secgw/ipsec_worker.c b/examples/ipsec-secgw/ipsec_worker.c index 04609964cd..612f78f2dc 100644 --- a/examples/ipsec-secgw/ipsec_worker.c +++ b/examples/ipsec-secgw/ipsec_worker.c @@ -94,7 +94,7 @@ ev_vector_attr_update(struct rte_event_vector *vec, struct rte_mbuf *pkt) } static inline void -prepare_out_sessions_tbl(struct sa_ctx *sa_out, +prepare_out_sessions_tbl(struct sa_ctx *out_ctx, struct port_drv_mode_data *data, uint16_t size) { @@ -102,12 +102,12 @@ prepare_out_sessions_tbl(struct sa_ctx *sa_out, struct ipsec_sa *sa; uint32_t i; - if (!sa_out) + if (!out_ctx) return; - for (i = 0; i < sa_out->nb_sa; i++) { + for (i = 0; i < out_ctx->nb_sa; i++) { - sa = &sa_out->sa[i]; + sa = &out_ctx->sa[i]; if (!sa) continue; @@ -1597,7 +1597,7 @@ ipsec_poll_mode_wrkr_inl_pr(void) uint64_t prev_tsc, diff_tsc, cur_tsc; struct ipsec_core_statistics *stats; struct rt_ctx *rt4_ctx, *rt6_ctx; - struct sa_ctx *sa_in, *sa_out; + struct sa_ctx *in_ctx, *out_ctx; struct traffic_type ip4, ip6; struct lcore_rx_queue *rxql; struct rte_mbuf **v4, **v6; @@ -1621,11 +1621,11 @@ ipsec_poll_mode_wrkr_inl_pr(void) sp4_in = socket_ctx[socket_id].sp_ip4_in; sp6_in = socket_ctx[socket_id].sp_ip6_in; - sa_in = socket_ctx[socket_id].sa_in; + in_ctx = socket_ctx[socket_id].sa_in; sp4_out = socket_ctx[socket_id].sp_ip4_out; sp6_out = socket_ctx[socket_id].sp_ip6_out; - sa_out = socket_ctx[socket_id].sa_out; + out_ctx = socket_ctx[socket_id].sa_out; qconf->frag.pool_indir = socket_ctx[socket_id].mbuf_pool_indir; @@ -1676,11 +1676,11 @@ ipsec_poll_mode_wrkr_inl_pr(void) free_pkts(trf.ipsec.pkts, trf.ipsec.num); if (is_unprotected_port(portid)) { - inbound_sp_sa(sp4_in, sa_in, &trf.ip4, + inbound_sp_sa(sp4_in, in_ctx, &trf.ip4, trf.ip4.num, &stats->inbound.spd4); - inbound_sp_sa(sp6_in, sa_in, &trf.ip6, + inbound_sp_sa(sp6_in, in_ctx, &trf.ip6, trf.ip6.num, &stats->inbound.spd6); @@ -1692,12 +1692,12 @@ ipsec_poll_mode_wrkr_inl_pr(void) ip4.num = 0; ip6.num = 0; - outb_inl_pro_spd_process(sp4_out, sa_out, + outb_inl_pro_spd_process(sp4_out, out_ctx, &trf.ip4, &ip4, &ip6, true, &stats->outbound.spd4); - outb_inl_pro_spd_process(sp6_out, sa_out, + outb_inl_pro_spd_process(sp6_out, out_ctx, &trf.ip6, &ip6, &ip4, false, &stats->outbound.spd6); @@ -1733,7 +1733,7 @@ ipsec_poll_mode_wrkr_inl_pr_ss(void) struct lcore_rx_queue *rxql; struct ipsec_sa *sa = NULL; struct lcore_conf *qconf; - struct sa_ctx *sa_out; + struct sa_ctx *out_ctx; uint32_t i, nb_rx, j; int32_t socket_id; uint32_t lcore_id; @@ -1746,9 +1746,9 @@ ipsec_poll_mode_wrkr_inl_pr_ss(void) socket_id = rte_lcore_to_socket_id(lcore_id); /* Get SA info */ - sa_out = socket_ctx[socket_id].sa_out; - if (sa_out && single_sa_idx < sa_out->nb_sa) { - sa = &sa_out->sa[single_sa_idx]; + out_ctx = socket_ctx[socket_id].sa_out; + if (out_ctx && single_sa_idx < out_ctx->nb_sa) { + sa = &out_ctx->sa[single_sa_idx]; ips = ipsec_get_primary_session(sa); sa_out_portid = sa->portid; if (sa->flags & IP6_TUNNEL) diff --git a/examples/ipsec-secgw/ipsec_worker.h b/examples/ipsec-secgw/ipsec_worker.h index 8f96161293..6db5951b9b 100644 --- a/examples/ipsec-secgw/ipsec_worker.h +++ b/examples/ipsec-secgw/ipsec_worker.h @@ -469,7 +469,7 @@ get_hop_for_offload_pkt(struct rte_mbuf *pkt, int is_ipv6) static __rte_always_inline void route4_pkts(struct rt_ctx *rt_ctx, struct rte_mbuf *pkts[], - uint32_t nb_pkts, uint64_t tx_offloads, bool ip_cksum) + uint32_t nb_pkts, uint64_t ol_flags, bool ip_cksum) { uint32_t hop[MAX_PKT_BURST * 2]; uint32_t dst_ip[MAX_PKT_BURST * 2]; @@ -536,7 +536,7 @@ route4_pkts(struct rt_ctx *rt_ctx, struct rte_mbuf *pkts[], if (ip_cksum) { struct rte_ipv4_hdr *ip; - pkt->ol_flags |= tx_offloads; + pkt->ol_flags |= ol_flags; ip = (struct rte_ipv4_hdr *)(ethhdr + 1); ip->hdr_checksum = 0; diff --git a/examples/ipsec-secgw/meson.build b/examples/ipsec-secgw/meson.build index 20fd7c6c5f..e6a0e18a73 100644 --- a/examples/ipsec-secgw/meson.build +++ b/examples/ipsec-secgw/meson.build @@ -25,7 +25,6 @@ sources = files( ) cflags += no_wvla_cflag -cflags += no_shadow_cflag app_cflags = ['-Wno-address-of-packed-member'] foreach flag:app_cflags diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c index a1a996dee8..866ba04b86 100644 --- a/examples/ipsec-secgw/sa.c +++ b/examples/ipsec-secgw/sa.c @@ -1696,7 +1696,6 @@ sa_spi_present(struct sa_ctx *sa_ctx, uint32_t spi, int inbound) void sa_init(struct socket_ctx *ctx, int32_t socket_id, - struct lcore_conf *lcore_conf, const struct eventmode_conf *em_conf) { int32_t rc; @@ -1828,8 +1827,8 @@ outbound_sa_lookup(struct sa_ctx *sa_ctx, uint32_t sa_idx[], * Select HW offloads to be used. */ int -sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, - uint64_t *tx_offloads, uint8_t *hw_reassembly) +sa_check_offloads(uint16_t port_id, uint64_t *rx_flags, + uint64_t *tx_flags, uint8_t *hw_reassembly) { struct ipsec_sa *rule; uint32_t idx_sa; @@ -1837,8 +1836,8 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, struct rte_eth_dev_info dev_info; int ret; - *rx_offloads = 0; - *tx_offloads = 0; + *rx_flags = 0; + *tx_flags = 0; *hw_reassembly = 0; ret = rte_eth_dev_info_get(port_id, &dev_info); @@ -1855,9 +1854,9 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, rule_type == RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL) && rule->portid == port_id) - *rx_offloads |= RTE_ETH_RX_OFFLOAD_SECURITY; + *rx_flags |= RTE_ETH_RX_OFFLOAD_SECURITY; if (IS_HW_REASSEMBLY_EN(rule->flags)) { - *tx_offloads |= RTE_ETH_TX_OFFLOAD_MULTI_SEGS; + *tx_flags |= RTE_ETH_TX_OFFLOAD_MULTI_SEGS; *hw_reassembly = 1; } } @@ -1875,20 +1874,17 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, * non-IPSec packets, there is no need of * IPv4 Checksum offload. */ - *tx_offloads |= RTE_ETH_TX_OFFLOAD_SECURITY; + *tx_flags |= RTE_ETH_TX_OFFLOAD_SECURITY; if (rule->mss) - *tx_offloads |= (RTE_ETH_TX_OFFLOAD_TCP_TSO | - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM); + *tx_flags |= RTE_ETH_TX_OFFLOAD_TCP_TSO | + RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; break; case RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO: - *tx_offloads |= RTE_ETH_TX_OFFLOAD_SECURITY; + *tx_flags |= RTE_ETH_TX_OFFLOAD_SECURITY; if (rule->mss) - *tx_offloads |= - RTE_ETH_TX_OFFLOAD_TCP_TSO; - if (dev_info.tx_offload_capa & - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) - *tx_offloads |= - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; + *tx_flags |= RTE_ETH_TX_OFFLOAD_TCP_TSO; + if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) + *tx_flags |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; break; default: /* Enable IPv4 checksum offload even if @@ -1896,13 +1892,13 @@ sa_check_offloads(uint16_t port_id, uint64_t *rx_offloads, */ if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) - *tx_offloads |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; + *tx_flags |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; break; } } else { if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) - *tx_offloads |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; + *tx_flags |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM; } } return 0; -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 10/23] examples/ip_pipeline: resolve shadow variable warning 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (8 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 09/23] examples/ipsec-secgw: " Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 11/23] examples/multi_process: resolve shadowed variable warnings Stephen Hemminger ` (12 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Cristian Dumitrescu The variable p was used for both pipeline and parameters. Rename first instance. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/ip_pipeline/cli.c | 9 ++++----- examples/ip_pipeline/meson.build | 1 - 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/ip_pipeline/cli.c b/examples/ip_pipeline/cli.c index 766fc8e46e..935c9b39d5 100644 --- a/examples/ip_pipeline/cli.c +++ b/examples/ip_pipeline/cli.c @@ -4721,7 +4721,7 @@ table_rule_show(const char *pipeline_name, uint32_t table_id, const char *file_name) { - struct pipeline *p; + struct pipeline *pipeline; struct table *table; struct table_rule *rule; FILE *f = NULL; @@ -4732,12 +4732,11 @@ table_rule_show(const char *pipeline_name, (file_name == NULL)) return -1; - p = pipeline_find(pipeline_name); - if ((p == NULL) || - (table_id >= p->n_tables)) + pipeline = pipeline_find(pipeline_name); + if (pipeline == NULL || table_id >= pipeline->n_tables) return -1; - table = &p->table[table_id]; + table = &pipeline->table[table_id]; /* Open file. */ f = fopen(file_name, "w"); diff --git a/examples/ip_pipeline/meson.build b/examples/ip_pipeline/meson.build index c5cda980f9..68049157e4 100644 --- a/examples/ip_pipeline/meson.build +++ b/examples/ip_pipeline/meson.build @@ -28,4 +28,3 @@ sources = files( 'thread.c', 'tmgr.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 11/23] examples/multi_process: resolve shadowed variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (9 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 10/23] examples/ip_pipeline: resolve shadow variable warning Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 12/23] examples/vm_power_manage: enable shadow warnings Stephen Hemminger ` (11 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Anatoly Burakov The string passed to parsing function number of clients shadowed global declaration. Also avoid similar problem in parsing portmask. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- .../multi_process/client_server_mp/mp_server/args.c | 12 ++++++------ .../client_server_mp/mp_server/meson.build | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/examples/multi_process/client_server_mp/mp_server/args.c b/examples/multi_process/client_server_mp/mp_server/args.c index 3c2ca266b0..60dbb3c626 100644 --- a/examples/multi_process/client_server_mp/mp_server/args.c +++ b/examples/multi_process/client_server_mp/mp_server/args.c @@ -42,18 +42,18 @@ usage(void) * array variable */ static int -parse_portmask(const char *portmask) +parse_portmask(const char *str) { char *end = NULL; unsigned long long pm; uint16_t id; - if (portmask == NULL || *portmask == '\0') + if (str == NULL || *str == '\0') return -1; /* convert parameter to a number and verify */ errno = 0; - pm = strtoull(portmask, &end, 16); + pm = strtoull(str, &end, 16); if (errno != 0 || end == NULL || *end != '\0') return -1; @@ -80,15 +80,15 @@ parse_portmask(const char *portmask) * and convert to a number to store in the num_clients variable */ static int -parse_num_clients(const char *clients) +parse_num_clients(const char *str) { char *end = NULL; unsigned long temp; - if (clients == NULL || *clients == '\0') + if (str == NULL || *str == '\0') return -1; - temp = strtoul(clients, &end, 10); + temp = strtoul(str, &end, 10); if (end == NULL || *end != '\0' || temp == 0) return -1; diff --git a/examples/multi_process/client_server_mp/mp_server/meson.build b/examples/multi_process/client_server_mp/mp_server/meson.build index a31eea764e..9e585e80b9 100644 --- a/examples/multi_process/client_server_mp/mp_server/meson.build +++ b/examples/multi_process/client_server_mp/mp_server/meson.build @@ -14,4 +14,3 @@ sources = files( 'init.c', 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 12/23] examples/vm_power_manage: enable shadow warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (10 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 11/23] examples/multi_process: resolve shadowed variable warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 13/23] examples/bbdev_app: " Stephen Hemminger ` (10 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev Cc: Stephen Hemminger, Bruce Richardson, Anatoly Burakov, Sivaprasad Tummala No problems in this code, re-enable the warning. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/vm_power_manager/guest_cli/meson.build | 1 - examples/vm_power_manager/meson.build | 1 - 2 files changed, 2 deletions(-) diff --git a/examples/vm_power_manager/guest_cli/meson.build b/examples/vm_power_manager/guest_cli/meson.build index 45f2edab22..6a6809240e 100644 --- a/examples/vm_power_manager/guest_cli/meson.build +++ b/examples/vm_power_manager/guest_cli/meson.build @@ -13,7 +13,6 @@ sources = files( 'parse.c', 'vm_power_cli_guest.c', ) -cflags += no_shadow_cflag allow_experimental_apis = true diff --git a/examples/vm_power_manager/meson.build b/examples/vm_power_manager/meson.build index 6bc84d752d..53949ce6d8 100644 --- a/examples/vm_power_manager/meson.build +++ b/examples/vm_power_manager/meson.build @@ -29,7 +29,6 @@ sources = files( 'power_manager.c', 'vm_power_cli.c', ) -cflags += no_shadow_cflag # If we're on X86, pull in the x86 code for the branch monitor algo. if dpdk_conf.has('RTE_ARCH_X86_64') -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 13/23] examples/bbdev_app: enable shadow warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (11 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 12/23] examples/vm_power_manage: enable shadow warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 14/23] examples/ptpclient: resolve shadow variable warnings Stephen Hemminger ` (9 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Nicolas Chautru Replace shadowed optarg with parameter named arg. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/bbdev_app/main.c | 4 +--- examples/bbdev_app/meson.build | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c index 03f15f91cc..5ac70dab59 100644 --- a/examples/bbdev_app/main.c +++ b/examples/bbdev_app/main.c @@ -214,7 +214,6 @@ static int bbdev_parse_args(int argc, char **argv, struct app_config_params *app_params) { - int optind = 0; int opt; int opt_indx = 0; char *prgname = argv[0]; @@ -269,8 +268,7 @@ bbdev_parse_args(int argc, char **argv, return -1; } } - optind = 0; - return optind; + return 0; } static void diff --git a/examples/bbdev_app/meson.build b/examples/bbdev_app/meson.build index 283a9551b3..ea588e8706 100644 --- a/examples/bbdev_app/meson.build +++ b/examples/bbdev_app/meson.build @@ -11,4 +11,3 @@ allow_experimental_apis = true sources = files( 'main.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 14/23] examples/ptpclient: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (12 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 13/23] examples/bbdev_app: " Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 15/23] examples/vhost: resolve shadow warnings Stephen Hemminger ` (8 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Kirill Rybalchenko Rename function parameters that shadow global variables. In port_init() rename mbuf_pool to mp, and in print_clock_info(), delta_eval(), parse_sync(), parse_fup(), and parse_drsp() rename ptp_data to ptp. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/ptpclient/meson.build | 1 - examples/ptpclient/ptpclient.c | 138 ++++++++++++++++----------------- 2 files changed, 69 insertions(+), 70 deletions(-) diff --git a/examples/ptpclient/meson.build b/examples/ptpclient/meson.build index 2e9b7625fc..47d091ea21 100644 --- a/examples/ptpclient/meson.build +++ b/examples/ptpclient/meson.build @@ -10,4 +10,3 @@ allow_experimental_apis = true sources = files( 'ptpclient.c', ) -cflags += no_shadow_cflag diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c index 174ca5dd70..8e1560a3ac 100644 --- a/examples/ptpclient/ptpclient.c +++ b/examples/ptpclient/ptpclient.c @@ -173,7 +173,7 @@ ns_to_timeval(int64_t nsec) * coming from the mbuf_pool passed as a parameter. */ static inline int -port_init(uint16_t port, struct rte_mempool *mbuf_pool) +port_init(uint16_t port, struct rte_mempool *mp) { struct rte_eth_dev_info dev_info; struct rte_eth_conf port_conf; @@ -223,7 +223,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) rxconf->offloads = port_conf.rxmode.offloads; retval = rte_eth_rx_queue_setup(port, q, nb_rxd, - rte_eth_dev_socket_id(port), rxconf, mbuf_pool); + rte_eth_dev_socket_id(port), rxconf, mp); if (retval < 0) return retval; @@ -266,42 +266,42 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) } static void -print_clock_info(struct ptpv2_time_receiver_ordinary *ptp_data) +print_clock_info(struct ptpv2_time_receiver_ordinary *ptp) { int64_t nsec; struct timespec net_time, sys_time; printf("time transmitter clock id: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", - ptp_data->transmitter_clock_id.id[0], - ptp_data->transmitter_clock_id.id[1], - ptp_data->transmitter_clock_id.id[2], - ptp_data->transmitter_clock_id.id[3], - ptp_data->transmitter_clock_id.id[4], - ptp_data->transmitter_clock_id.id[5], - ptp_data->transmitter_clock_id.id[6], - ptp_data->transmitter_clock_id.id[7]); + ptp->transmitter_clock_id.id[0], + ptp->transmitter_clock_id.id[1], + ptp->transmitter_clock_id.id[2], + ptp->transmitter_clock_id.id[3], + ptp->transmitter_clock_id.id[4], + ptp->transmitter_clock_id.id[5], + ptp->transmitter_clock_id.id[6], + ptp->transmitter_clock_id.id[7]); printf("\nT2 - time receiver clock. %lds %ldns", - (ptp_data->tstamp2.tv_sec), - (ptp_data->tstamp2.tv_nsec)); + (ptp->tstamp2.tv_sec), + (ptp->tstamp2.tv_nsec)); printf("\nT1 - time transmitter clock. %lds %ldns ", - ptp_data->tstamp1.tv_sec, - (ptp_data->tstamp1.tv_nsec)); + ptp->tstamp1.tv_sec, + (ptp->tstamp1.tv_nsec)); printf("\nT3 - time receiver clock. %lds %ldns", - ptp_data->tstamp3.tv_sec, - (ptp_data->tstamp3.tv_nsec)); + ptp->tstamp3.tv_sec, + (ptp->tstamp3.tv_nsec)); printf("\nT4 - time transmitter clock. %lds %ldns\n", - ptp_data->tstamp4.tv_sec, - (ptp_data->tstamp4.tv_nsec)); + ptp->tstamp4.tv_sec, + (ptp->tstamp4.tv_nsec)); printf("\nDelta between transmitter and receiver clocks:%"PRId64"ns\n", - ptp_data->delta); + ptp->delta); clock_gettime(CLOCK_REALTIME, &sys_time); - rte_eth_timesync_read_time(ptp_data->current_ptp_port, + rte_eth_timesync_read_time(ptp->current_ptp_port, &net_time); time_t ts = net_time.tv_sec; @@ -313,14 +313,14 @@ print_clock_info(struct ptpv2_time_receiver_ordinary *ptp_data) nsec = (int64_t)timespec64_to_ns(&net_time) - (int64_t)timespec64_to_ns(&sys_time); - ptp_data->new_adj = ns_to_timeval(nsec); + ptp->new_adj = ns_to_timeval(nsec); - gettimeofday(&ptp_data->new_adj, NULL); + gettimeofday(&ptp->new_adj, NULL); - time_t tp = ptp_data->new_adj.tv_sec; + time_t tp = ptp->new_adj.tv_sec; printf("\nCurrent SYS Time: %.24s %.6ld ns", - ctime(&tp), ptp_data->new_adj.tv_usec); + ctime(&tp), ptp->new_adj.tv_usec); printf("\nDelta between PTP and Linux Kernel time:%"PRId64"ns\n", nsec); @@ -332,7 +332,7 @@ print_clock_info(struct ptpv2_time_receiver_ordinary *ptp_data) } static int64_t -delta_eval(struct ptpv2_time_receiver_ordinary *ptp_data) +delta_eval(struct ptpv2_time_receiver_ordinary *ptp) { int64_t delta; uint64_t t1 = 0; @@ -340,10 +340,10 @@ delta_eval(struct ptpv2_time_receiver_ordinary *ptp_data) uint64_t t3 = 0; uint64_t t4 = 0; - t1 = timespec64_to_ns(&ptp_data->tstamp1); - t2 = timespec64_to_ns(&ptp_data->tstamp2); - t3 = timespec64_to_ns(&ptp_data->tstamp3); - t4 = timespec64_to_ns(&ptp_data->tstamp4); + t1 = timespec64_to_ns(&ptp->tstamp1); + t2 = timespec64_to_ns(&ptp->tstamp2); + t3 = timespec64_to_ns(&ptp->tstamp3); + t4 = timespec64_to_ns(&ptp->tstamp4); delta = -((int64_t)((t2 - t1) - (t4 - t3))) / 2; @@ -354,26 +354,26 @@ delta_eval(struct ptpv2_time_receiver_ordinary *ptp_data) * Parse the PTP SYNC message. */ static void -parse_sync(struct ptpv2_time_receiver_ordinary *ptp_data, uint16_t rx_tstamp_idx) +parse_sync(struct ptpv2_time_receiver_ordinary *ptp, uint16_t rx_tstamp_idx) { struct ptp_header *ptp_hdr; - ptp_hdr = rte_pktmbuf_mtod_offset(ptp_data->m, struct ptp_header *, + ptp_hdr = rte_pktmbuf_mtod_offset(ptp->m, struct ptp_header *, sizeof(struct rte_ether_hdr)); - ptp_data->seqID_SYNC = rte_be_to_cpu_16(ptp_hdr->seq_id); + ptp->seqID_SYNC = rte_be_to_cpu_16(ptp_hdr->seq_id); - if (ptp_data->ptpset == 0) { - ptp_data->transmitter_clock_id = ptp_hdr->source_port_id.clock_id; - ptp_data->ptpset = 1; + if (ptp->ptpset == 0) { + ptp->transmitter_clock_id = ptp_hdr->source_port_id.clock_id; + ptp->ptpset = 1; } - if (memcmp(&ptp_data->transmitter_clock_id, + if (memcmp(&ptp->transmitter_clock_id, &ptp_hdr->source_port_id.clock_id, sizeof(struct clock_id)) == 0) { - if (ptp_data->ptpset == 1) - rte_eth_timesync_read_rx_timestamp(ptp_data->portid, - &ptp_data->tstamp2, rx_tstamp_idx); + if (ptp->ptpset == 1) + rte_eth_timesync_read_rx_timestamp(ptp->portid, + &ptp->tstamp2, rx_tstamp_idx); } } @@ -382,7 +382,7 @@ parse_sync(struct ptpv2_time_receiver_ordinary *ptp_data, uint16_t rx_tstamp_idx * Parse the PTP FOLLOWUP message and send DELAY_REQ to the main clock. */ static void -parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) +parse_fup(struct ptpv2_time_receiver_ordinary *ptp) { struct rte_ether_hdr *eth_hdr; struct rte_ether_addr eth_addr; @@ -395,32 +395,32 @@ parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) struct rte_ether_addr eth_multicast = ether_multicast; size_t pkt_size; int wait_us; - struct rte_mbuf *m = ptp_data->m; + struct rte_mbuf *m = ptp->m; int ret; eth_hdr = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); ptp_hdr = rte_pktmbuf_mtod_offset(m, struct ptp_header *, sizeof(struct rte_ether_hdr)); - if (memcmp(&ptp_data->transmitter_clock_id, + if (memcmp(&ptp->transmitter_clock_id, &ptp_hdr->source_port_id.clock_id, sizeof(struct clock_id)) != 0) return; - ptp_data->seqID_FOLLOWUP = rte_be_to_cpu_16(ptp_hdr->seq_id); + ptp->seqID_FOLLOWUP = rte_be_to_cpu_16(ptp_hdr->seq_id); ptp_msg = rte_pktmbuf_mtod_offset(m, struct ptp_message *, sizeof(struct rte_ether_hdr)); origin_tstamp = &ptp_msg->follow_up.precise_origin_tstamp; - ptp_data->tstamp1.tv_nsec = ntohl(origin_tstamp->ns); - ptp_data->tstamp1.tv_sec = + ptp->tstamp1.tv_nsec = ntohl(origin_tstamp->ns); + ptp->tstamp1.tv_sec = ((uint64_t)ntohl(origin_tstamp->sec_lsb)) | (((uint64_t)ntohs(origin_tstamp->sec_msb)) << 32); - if (ptp_data->seqID_FOLLOWUP == ptp_data->seqID_SYNC) { - ret = rte_eth_macaddr_get(ptp_data->portid, ð_addr); + if (ptp->seqID_FOLLOWUP == ptp->seqID_SYNC) { + ret = rte_eth_macaddr_get(ptp->portid, ð_addr); if (ret != 0) { printf("\nCore %u: port %u failed to get MAC address: %s\n", - rte_lcore_id(), ptp_data->portid, + rte_lcore_id(), ptp->portid, rte_strerror(-ret)); return; } @@ -446,7 +446,7 @@ parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) struct delay_req_msg *, sizeof(struct rte_ether_hdr)); - req_msg->hdr.seq_id = htons(ptp_data->seqID_SYNC); + req_msg->hdr.seq_id = htons(ptp->seqID_SYNC); req_msg->hdr.msg_type = DELAY_REQ; req_msg->hdr.ver = 2; req_msg->hdr.control = 1; @@ -468,25 +468,25 @@ parse_fup(struct ptpv2_time_receiver_ordinary *ptp_data) client_clkid->id[6] = eth_hdr->src_addr.addr_bytes[4]; client_clkid->id[7] = eth_hdr->src_addr.addr_bytes[5]; - ptp_data->client_clock_id = *client_clkid; + ptp->client_clock_id = *client_clkid; /* Enable flag for hardware timestamping. */ created_pkt->ol_flags |= RTE_MBUF_F_TX_IEEE1588_TMST; /*Read value from NIC to prevent latching with old value. */ - rte_eth_timesync_read_tx_timestamp(ptp_data->portid, - &ptp_data->tstamp3); + rte_eth_timesync_read_tx_timestamp(ptp->portid, + &ptp->tstamp3); /* Transmit the packet. */ - rte_eth_tx_burst(ptp_data->portid, 0, &created_pkt, 1); + rte_eth_tx_burst(ptp->portid, 0, &created_pkt, 1); wait_us = 0; - ptp_data->tstamp3.tv_nsec = 0; - ptp_data->tstamp3.tv_sec = 0; + ptp->tstamp3.tv_nsec = 0; + ptp->tstamp3.tv_sec = 0; /* Wait at least 1 us to read TX timestamp. */ - while ((rte_eth_timesync_read_tx_timestamp(ptp_data->portid, - &ptp_data->tstamp3) < 0) && (wait_us < 1000)) { + while ((rte_eth_timesync_read_tx_timestamp(ptp->portid, + &ptp->tstamp3) < 0) && (wait_us < 1000)) { rte_delay_us(1); wait_us++; } @@ -530,9 +530,9 @@ update_kernel_time(void) * Parse the DELAY_RESP message. */ static void -parse_drsp(struct ptpv2_time_receiver_ordinary *ptp_data) +parse_drsp(struct ptpv2_time_receiver_ordinary *ptp) { - struct rte_mbuf *m = ptp_data->m; + struct rte_mbuf *m = ptp->m; struct ptp_message *ptp_msg; struct tstamp *rx_tstamp; uint16_t seq_id; @@ -540,26 +540,26 @@ parse_drsp(struct ptpv2_time_receiver_ordinary *ptp_data) ptp_msg = rte_pktmbuf_mtod_offset(m, struct ptp_message *, sizeof(struct rte_ether_hdr)); seq_id = rte_be_to_cpu_16(ptp_msg->delay_resp.hdr.seq_id); - if (memcmp(&ptp_data->client_clock_id, + if (memcmp(&ptp->client_clock_id, &ptp_msg->delay_resp.req_port_id.clock_id, sizeof(struct clock_id)) == 0) { - if (seq_id == ptp_data->seqID_FOLLOWUP) { + if (seq_id == ptp->seqID_FOLLOWUP) { rx_tstamp = &ptp_msg->delay_resp.rx_tstamp; - ptp_data->tstamp4.tv_nsec = ntohl(rx_tstamp->ns); - ptp_data->tstamp4.tv_sec = + ptp->tstamp4.tv_nsec = ntohl(rx_tstamp->ns); + ptp->tstamp4.tv_sec = ((uint64_t)ntohl(rx_tstamp->sec_lsb)) | (((uint64_t)ntohs(rx_tstamp->sec_msb)) << 32); /* Evaluate the delta for adjustment. */ - ptp_data->delta = delta_eval(ptp_data); + ptp->delta = delta_eval(ptp); - rte_eth_timesync_adjust_time(ptp_data->portid, - ptp_data->delta); + rte_eth_timesync_adjust_time(ptp->portid, + ptp->delta); - ptp_data->current_ptp_port = ptp_data->portid; + ptp->current_ptp_port = ptp->portid; /* Update kernel time if enabled in app parameters. */ - if (ptp_data->kernel_time_set == 1) + if (ptp->kernel_time_set == 1) update_kernel_time(); -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 15/23] examples/vhost: resolve shadow warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (13 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 14/23] examples/ptpclient: resolve shadow variable warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 16/23] examples/qos_sched: eliminate shadowed variables Stephen Hemminger ` (7 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Maxime Coquelin, Chenbo Xia The mbuf_pool was being passed as parameter with same as global; resolve conflict by making variable local to main and passing where needed. The num_devices was global but also passed as arg. Remove the parameter. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/vhost/main.c | 19 ++++++++++--------- examples/vhost/meson.build | 1 - 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/vhost/main.c b/examples/vhost/main.c index ac888348d2..5978a50cfe 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -86,7 +86,6 @@ static uint32_t promiscuous; static uint32_t num_queues = 0; static uint32_t num_devices; -static struct rte_mempool *mbuf_pool; static int mergeable; /* Enable VM2VM communications. If this is disabled then the MAC address compare is skipped. */ @@ -387,7 +386,7 @@ open_dma(const char *value) * according to the pool & queue limits. */ static inline int -get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_devices) +get_eth_conf(struct rte_eth_conf *eth_conf) { struct rte_eth_vmdq_rx_conf conf; struct rte_eth_vmdq_rx_conf *def_conf = @@ -415,7 +414,7 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_devices) * coming from the mbuf_pool passed as parameter */ static inline int -port_init(uint16_t port) +port_init(uint16_t port, struct rte_mempool *mbuf_pool) { struct rte_eth_dev_info dev_info; struct rte_eth_conf port_conf; @@ -460,7 +459,7 @@ port_init(uint16_t port) } /* Get port configuration. */ - retval = get_eth_conf(&port_conf, num_devices); + retval = get_eth_conf(&port_conf); if (retval < 0) return retval; /* NIC queues are divided into pf queues and vmdq queues. */ @@ -1440,7 +1439,7 @@ uint16_t sync_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id, } static __rte_always_inline void -drain_virtio_tx(struct vhost_dev *vdev) +drain_virtio_tx(struct vhost_dev *vdev, struct rte_mempool *mbuf_pool) { struct rte_mbuf *pkts[MAX_PKT_BURST]; uint16_t count; @@ -1477,8 +1476,9 @@ drain_virtio_tx(struct vhost_dev *vdev) * } */ static int -switch_worker(void *arg __rte_unused) +switch_worker(void *arg) { + struct rte_mempool *mbuf_pool = arg; unsigned i; unsigned lcore_id = rte_lcore_id(); struct vhost_dev *vdev; @@ -1519,7 +1519,7 @@ switch_worker(void *arg __rte_unused) drain_eth_rx(vdev); if (likely(!vdev->remove)) - drain_virtio_tx(vdev); + drain_virtio_tx(vdev, mbuf_pool); } } @@ -1906,6 +1906,7 @@ reset_dma(void) int main(int argc, char *argv[]) { + struct rte_mempool *mbuf_pool = NULL; unsigned lcore_id, core_id = 0; unsigned nb_ports, valid_num_ports; int ret, i; @@ -1982,7 +1983,7 @@ main(int argc, char *argv[]) "Skipping disabled port %d\n", portid); continue; } - if (port_init(portid) != 0) + if (port_init(portid, mbuf_pool) != 0) rte_exit(EXIT_FAILURE, "Cannot initialize network ports\n"); } @@ -1998,7 +1999,7 @@ main(int argc, char *argv[]) /* Launch all data cores. */ RTE_LCORE_FOREACH_WORKER(lcore_id) - rte_eal_remote_launch(switch_worker, NULL, lcore_id); + rte_eal_remote_launch(switch_worker, mbuf_pool, lcore_id); if (client_mode) flags |= RTE_VHOST_USER_CLIENT; diff --git a/examples/vhost/meson.build b/examples/vhost/meson.build index af5049c7ef..e938be8f45 100644 --- a/examples/vhost/meson.build +++ b/examples/vhost/meson.build @@ -19,4 +19,3 @@ sources = files( 'virtio_net.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 16/23] examples/qos_sched: eliminate shadowed variables 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (14 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 15/23] examples/vhost: resolve shadow warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 17/23] examples/l2fwd-jobstats: resolve shadowed variable Stephen Hemminger ` (6 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Cristian Dumitrescu The port_params and subport_params are global variables, then passed to load functions. The names clash so just use the globals. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/qos_sched/cfg_file.c | 12 ++++++------ examples/qos_sched/cfg_file.h | 4 ++-- examples/qos_sched/init.c | 4 ++-- examples/qos_sched/meson.build | 1 - 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/examples/qos_sched/cfg_file.c b/examples/qos_sched/cfg_file.c index c75cf9db2e..3ca06c2ff9 100644 --- a/examples/qos_sched/cfg_file.c +++ b/examples/qos_sched/cfg_file.c @@ -41,20 +41,20 @@ int parse_u64(const char *entry, uint64_t *val) } int -cfg_load_port(struct rte_cfgfile *cfg, struct rte_sched_port_params *port_params) +cfg_load_port(struct rte_cfgfile *cfg) { const char *entry; - if (!cfg || !port_params) + if (!cfg) return -1; entry = rte_cfgfile_get_entry(cfg, "port", "frame overhead"); if (entry) - port_params->frame_overhead = (uint32_t)atoi(entry); + port_params.frame_overhead = (uint32_t)atoi(entry); entry = rte_cfgfile_get_entry(cfg, "port", "number of subports per port"); if (entry) - port_params->n_subports_per_port = (uint32_t)atoi(entry); + port_params.n_subports_per_port = (uint32_t)atoi(entry); return 0; } @@ -279,13 +279,13 @@ cfg_load_subport_profile(struct rte_cfgfile *cfg, } int -cfg_load_subport(struct rte_cfgfile *cfg, struct rte_sched_subport_params *subport_params) +cfg_load_subport(struct rte_cfgfile *cfg) { bool cman_enabled = false; const char *entry; int i, j, k; - if (!cfg || !subport_params) + if (!cfg) return -1; memset(app_pipe_to_profile, -1, sizeof(app_pipe_to_profile)); diff --git a/examples/qos_sched/cfg_file.h b/examples/qos_sched/cfg_file.h index 71d280718f..26552f1e30 100644 --- a/examples/qos_sched/cfg_file.h +++ b/examples/qos_sched/cfg_file.h @@ -10,11 +10,11 @@ int parse_u64(const char *entry, uint64_t *val); -int cfg_load_port(struct rte_cfgfile *cfg, struct rte_sched_port_params *port); +int cfg_load_port(struct rte_cfgfile *cfg); int cfg_load_pipe(struct rte_cfgfile *cfg, struct rte_sched_pipe_params *pipe); -int cfg_load_subport(struct rte_cfgfile *cfg, struct rte_sched_subport_params *subport); +int cfg_load_subport(struct rte_cfgfile *cfg); int cfg_load_subport_profile(struct rte_cfgfile *cfg, struct rte_sched_subport_profile_params diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c index ace7279c67..561f9e0619 100644 --- a/examples/qos_sched/init.c +++ b/examples/qos_sched/init.c @@ -296,11 +296,11 @@ app_load_cfg_profile(const char *profile) if (file == NULL) rte_exit(EXIT_FAILURE, "Cannot load configuration profile %s\n", profile); - ret = cfg_load_port(file, &port_params); + ret = cfg_load_port(file); if (ret) goto _app_load_cfg_profile_error_return; - ret = cfg_load_subport(file, subport_params); + ret = cfg_load_subport(file); if (ret) goto _app_load_cfg_profile_error_return; diff --git a/examples/qos_sched/meson.build b/examples/qos_sched/meson.build index 4657c756a1..92657ce8a5 100644 --- a/examples/qos_sched/meson.build +++ b/examples/qos_sched/meson.build @@ -18,4 +18,3 @@ sources = files( 'stats.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 17/23] examples/l2fwd-jobstats: resolve shadowed variable 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (15 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 16/23] examples/qos_sched: eliminate shadowed variables Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 18/23] examples/l2fwd-crypto: resolve shadow variable Stephen Hemminger ` (5 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson The inner loop across ports was shadowing other definition of variable i. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-jobstats/main.c | 6 +++--- examples/l2fwd-jobstats/meson.build | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index 036bd4f951..f2c284cebb 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -515,7 +515,6 @@ l2fwd_main_loop(void) uint64_t repeats = 0; do { - uint8_t i; uint64_t now = rte_get_timer_cycles(); repeats++; @@ -526,8 +525,9 @@ l2fwd_main_loop(void) rte_memory_order_relaxed); need_manage |= stats_read_pending; - for (i = 0; i < qconf->n_rx_port && !need_manage; i++) - need_manage = qconf->rx_timers[i].expire < now; + for (uint16_t port_id = 0; + port_id < qconf->n_rx_port && !need_manage; port_id++) + need_manage = qconf->rx_timers[port_id].expire < now; } while (!need_manage); diff --git a/examples/l2fwd-jobstats/meson.build b/examples/l2fwd-jobstats/meson.build index 51da6e277e..d59d3d6555 100644 --- a/examples/l2fwd-jobstats/meson.build +++ b/examples/l2fwd-jobstats/meson.build @@ -12,4 +12,3 @@ sources = files( 'main.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 18/23] examples/l2fwd-crypto: resolve shadow variable 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (16 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 17/23] examples/l2fwd-jobstats: resolve shadowed variable Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 19/23] examples/l2fwd-event: resolve shadowed variable Stephen Hemminger ` (4 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Akhil Goyal, Fan Zhang Replace shadowed optarg with parameter named arg. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-crypto/main.c | 50 +++++++++++++++---------------- examples/l2fwd-crypto/meson.build | 1 - 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index a441312f55..ff189b5fab 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -1030,15 +1030,15 @@ l2fwd_crypto_usage(const char *prgname) /** Parse crypto device type command line argument */ static int -parse_cryptodev_type(enum cdev_type *type, char *optarg) +parse_cryptodev_type(enum cdev_type *type, const char *arg) { - if (strcmp("HW", optarg) == 0) { + if (strcmp("HW", arg) == 0) { *type = CDEV_TYPE_HW; return 0; - } else if (strcmp("SW", optarg) == 0) { + } else if (strcmp("SW", arg) == 0) { *type = CDEV_TYPE_SW; return 0; - } else if (strcmp("ANY", optarg) == 0) { + } else if (strcmp("ANY", arg) == 0) { *type = CDEV_TYPE_ANY; return 0; } @@ -1048,21 +1048,21 @@ parse_cryptodev_type(enum cdev_type *type, char *optarg) /** Parse crypto chain xform command line argument */ static int -parse_crypto_opt_chain(struct l2fwd_crypto_options *options, char *optarg) +parse_crypto_opt_chain(struct l2fwd_crypto_options *options, const char *arg) { - if (strcmp("CIPHER_HASH", optarg) == 0) { + if (strcmp("CIPHER_HASH", arg) == 0) { options->xform_chain = L2FWD_CRYPTO_CIPHER_HASH; return 0; - } else if (strcmp("HASH_CIPHER", optarg) == 0) { + } else if (strcmp("HASH_CIPHER", arg) == 0) { options->xform_chain = L2FWD_CRYPTO_HASH_CIPHER; return 0; - } else if (strcmp("CIPHER_ONLY", optarg) == 0) { + } else if (strcmp("CIPHER_ONLY", arg) == 0) { options->xform_chain = L2FWD_CRYPTO_CIPHER_ONLY; return 0; - } else if (strcmp("HASH_ONLY", optarg) == 0) { + } else if (strcmp("HASH_ONLY", arg) == 0) { options->xform_chain = L2FWD_CRYPTO_HASH_ONLY; return 0; - } else if (strcmp("AEAD", optarg) == 0) { + } else if (strcmp("AEAD", arg) == 0) { options->xform_chain = L2FWD_CRYPTO_AEAD; return 0; } @@ -1072,10 +1072,10 @@ parse_crypto_opt_chain(struct l2fwd_crypto_options *options, char *optarg) /** Parse crypto cipher algo option command line argument */ static int -parse_cipher_algo(enum rte_crypto_cipher_algorithm *algo, char *optarg) +parse_cipher_algo(enum rte_crypto_cipher_algorithm *algo, const char *arg) { - if (rte_cryptodev_get_cipher_algo_enum(algo, optarg) < 0) { + if (rte_cryptodev_get_cipher_algo_enum(algo, arg) < 0) { RTE_LOG(ERR, USER1, "Cipher algorithm specified " "not supported!\n"); return -1; @@ -1086,12 +1086,12 @@ parse_cipher_algo(enum rte_crypto_cipher_algorithm *algo, char *optarg) /** Parse crypto cipher operation command line argument */ static int -parse_cipher_op(enum rte_crypto_cipher_operation *op, char *optarg) +parse_cipher_op(enum rte_crypto_cipher_operation *op, const char *arg) { - if (strcmp("ENCRYPT", optarg) == 0) { + if (strcmp("ENCRYPT", arg) == 0) { *op = RTE_CRYPTO_CIPHER_OP_ENCRYPT; return 0; - } else if (strcmp("DECRYPT", optarg) == 0) { + } else if (strcmp("DECRYPT", arg) == 0) { *op = RTE_CRYPTO_CIPHER_OP_DECRYPT; return 0; } @@ -1146,9 +1146,9 @@ parse_size(int *size, const char *q_arg) /** Parse crypto cipher operation command line argument */ static int -parse_auth_algo(enum rte_crypto_auth_algorithm *algo, char *optarg) +parse_auth_algo(enum rte_crypto_auth_algorithm *algo, const char *arg) { - if (rte_cryptodev_get_auth_algo_enum(algo, optarg) < 0) { + if (rte_cryptodev_get_auth_algo_enum(algo, arg) < 0) { RTE_LOG(ERR, USER1, "Authentication algorithm specified " "not supported!\n"); return -1; @@ -1158,12 +1158,12 @@ parse_auth_algo(enum rte_crypto_auth_algorithm *algo, char *optarg) } static int -parse_auth_op(enum rte_crypto_auth_operation *op, char *optarg) +parse_auth_op(enum rte_crypto_auth_operation *op, const char *arg) { - if (strcmp("VERIFY", optarg) == 0) { + if (strcmp("VERIFY", arg) == 0) { *op = RTE_CRYPTO_AUTH_OP_VERIFY; return 0; - } else if (strcmp("GENERATE", optarg) == 0) { + } else if (strcmp("GENERATE", arg) == 0) { *op = RTE_CRYPTO_AUTH_OP_GENERATE; return 0; } @@ -1173,9 +1173,9 @@ parse_auth_op(enum rte_crypto_auth_operation *op, char *optarg) } static int -parse_aead_algo(enum rte_crypto_aead_algorithm *algo, char *optarg) +parse_aead_algo(enum rte_crypto_aead_algorithm *algo, const char *arg) { - if (rte_cryptodev_get_aead_algo_enum(algo, optarg) < 0) { + if (rte_cryptodev_get_aead_algo_enum(algo, arg) < 0) { RTE_LOG(ERR, USER1, "AEAD algorithm specified " "not supported!\n"); return -1; @@ -1185,12 +1185,12 @@ parse_aead_algo(enum rte_crypto_aead_algorithm *algo, char *optarg) } static int -parse_aead_op(enum rte_crypto_aead_operation *op, char *optarg) +parse_aead_op(enum rte_crypto_aead_operation *op, const char *arg) { - if (strcmp("ENCRYPT", optarg) == 0) { + if (strcmp("ENCRYPT", arg) == 0) { *op = RTE_CRYPTO_AEAD_OP_ENCRYPT; return 0; - } else if (strcmp("DECRYPT", optarg) == 0) { + } else if (strcmp("DECRYPT", arg) == 0) { *op = RTE_CRYPTO_AEAD_OP_DECRYPT; return 0; } diff --git a/examples/l2fwd-crypto/meson.build b/examples/l2fwd-crypto/meson.build index 8c5432cb7f..c21722b85c 100644 --- a/examples/l2fwd-crypto/meson.build +++ b/examples/l2fwd-crypto/meson.build @@ -15,4 +15,3 @@ sources = files( 'main.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 19/23] examples/l2fwd-event: resolve shadowed variable 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (17 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 18/23] examples/l2fwd-crypto: resolve shadow variable Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 20/23] examples/l2fwd-keepalive: resolve shadow variable warning Stephen Hemminger ` (3 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Sunil Kumar Kori, Pavan Nikhilesh Replace shadowed global optarg with parameter named arg. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-event/main.c | 15 +++++++-------- examples/l2fwd-event/meson.build | 1 - 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/examples/l2fwd-event/main.c b/examples/l2fwd-event/main.c index 7600b9e9cf..2d31d4c6ad 100644 --- a/examples/l2fwd-event/main.c +++ b/examples/l2fwd-event/main.c @@ -82,24 +82,23 @@ l2fwd_event_parse_timer_period(const char *q_arg) } static void -l2fwd_event_parse_mode(const char *optarg, - struct l2fwd_resources *rsrc) +l2fwd_event_parse_mode(const char *arg, struct l2fwd_resources *rsrc) { - if (!strncmp(optarg, "poll", 4)) + if (!strncmp(arg, "poll", 4)) rsrc->event_mode = false; - else if (!strncmp(optarg, "eventdev", 8)) + else if (!strncmp(arg, "eventdev", 8)) rsrc->event_mode = true; } static void -l2fwd_event_parse_eventq_sched(const char *optarg, +l2fwd_event_parse_eventq_sched(const char *arg, struct l2fwd_resources *rsrc) { - if (!strncmp(optarg, "ordered", 7)) + if (!strncmp(arg, "ordered", 7)) rsrc->sched_type = RTE_SCHED_TYPE_ORDERED; - else if (!strncmp(optarg, "atomic", 6)) + else if (!strncmp(arg, "atomic", 6)) rsrc->sched_type = RTE_SCHED_TYPE_ATOMIC; - else if (!strncmp(optarg, "parallel", 8)) + else if (!strncmp(arg, "parallel", 8)) rsrc->sched_type = RTE_SCHED_TYPE_PARALLEL; } diff --git a/examples/l2fwd-event/meson.build b/examples/l2fwd-event/meson.build index ff171189ba..5bc8188086 100644 --- a/examples/l2fwd-event/meson.build +++ b/examples/l2fwd-event/meson.build @@ -17,4 +17,3 @@ sources = files( 'l2fwd_event_internal_port.c', 'l2fwd_poll.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 20/23] examples/l2fwd-keepalive: resolve shadow variable warning 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (18 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 19/23] examples/l2fwd-event: resolve shadowed variable Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 21/23] examples/l3fwd-graph: " Stephen Hemminger ` (2 subsequent siblings) 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson The qconf parameter can reused, fixing a shadow warning. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l2fwd-keepalive/main.c | 2 +- examples/l2fwd-keepalive/meson.build | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index 993e0bf9da..12ca60c3e4 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -780,7 +780,7 @@ main(int argc, char **argv) } /* launch per-lcore init on every worker lcore */ RTE_LCORE_FOREACH_WORKER(lcore_id) { - struct lcore_queue_conf *qconf = &lcore_queue_conf[lcore_id]; + qconf = &lcore_queue_conf[lcore_id]; if (qconf->n_rx_port == 0) RTE_LOG(INFO, L2FWD, diff --git a/examples/l2fwd-keepalive/meson.build b/examples/l2fwd-keepalive/meson.build index 258f3baf08..e3f72aedb8 100644 --- a/examples/l2fwd-keepalive/meson.build +++ b/examples/l2fwd-keepalive/meson.build @@ -19,4 +19,3 @@ sources = files( 'main.c', 'shm.c', ) -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 21/23] examples/l3fwd-graph: resolve shadow variable warning 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (19 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 20/23] examples/l2fwd-keepalive: resolve shadow variable warning Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 22/23] examples/l3fwd: resolve shadow variable warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 23/23] examples/l3fwd-power: " Stephen Hemminger 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev Cc: Stephen Hemminger, Bruce Richardson, Jerin Jacob, Kiran Kumar K, Nithin Dabilpuram, Zhirun Yan Replace global optarg with parameter arg. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l3fwd-graph/main.c | 8 ++++---- examples/l3fwd-graph/meson.build | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/l3fwd-graph/main.c b/examples/l3fwd-graph/main.c index 92cdaa1ebe..01c65b0abd 100644 --- a/examples/l3fwd-graph/main.c +++ b/examples/l3fwd-graph/main.c @@ -454,16 +454,16 @@ parse_config(const char *q_arg) } static void -parse_eth_dest(const char *optarg) +parse_eth_dest(const char *arg) { uint8_t c, *dest, peer_addr[6]; uint16_t portid; char *port_end; errno = 0; - portid = strtoul(optarg, &port_end, 10); - if (errno != 0 || port_end == optarg || *port_end++ != ',') - rte_exit(EXIT_FAILURE, "Invalid eth-dest: %s", optarg); + portid = strtoul(arg, &port_end, 10); + if (errno != 0 || port_end == arg || *port_end++ != ',') + rte_exit(EXIT_FAILURE, "Invalid eth-dest: %s", arg); if (portid >= RTE_MAX_ETHPORTS) rte_exit(EXIT_FAILURE, "eth-dest: port %d >= RTE_MAX_ETHPORTS(%d)\n", portid, diff --git a/examples/l3fwd-graph/meson.build b/examples/l3fwd-graph/meson.build index e3f4fa8df2..b3ceaadb59 100644 --- a/examples/l3fwd-graph/meson.build +++ b/examples/l3fwd-graph/meson.build @@ -11,4 +11,3 @@ sources = files( 'main.c', ) allow_experimental_apis = true -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 22/23] examples/l3fwd: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (20 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 21/23] examples/l3fwd-graph: " Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 23/23] examples/l3fwd-power: " Stephen Hemminger 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Bruce Richardson Correct for shadow variables by renaming: - global ipv6 becomes ipv6_enabled (convert int to bool) - lcore_params used by eventdev becomes config_parsed - masks for sse globals get xmm_ prefix - replace global optarg with parameter named arg Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l3fwd/l3fwd.h | 2 +- examples/l3fwd/l3fwd_em.c | 32 +++++++++-------- examples/l3fwd/l3fwd_em_hlm.h | 8 ++--- examples/l3fwd/l3fwd_lpm.c | 4 +-- examples/l3fwd/l3fwd_route.h | 12 +++---- examples/l3fwd/main.c | 68 +++++++++++++++++------------------ examples/l3fwd/meson.build | 1 - 7 files changed, 65 insertions(+), 62 deletions(-) diff --git a/examples/l3fwd/l3fwd.h b/examples/l3fwd/l3fwd.h index 471e3b488f..349fc37c79 100644 --- a/examples/l3fwd/l3fwd.h +++ b/examples/l3fwd/l3fwd.h @@ -99,7 +99,7 @@ extern struct rte_ether_addr ports_eth_addr[RTE_MAX_ETHPORTS]; extern uint32_t enabled_port_mask; /* Used only in exact match mode. */ -extern int ipv6; /**< ipv6 is false by default. */ +extern bool ipv6_enabled; /**< ipv6 is false by default. */ extern uint32_t hash_entry_number; extern xmm_t val_eth[RTE_MAX_ETHPORTS]; diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c index 58c54ed77e..d8748a0edd 100644 --- a/examples/l3fwd/l3fwd_em.c +++ b/examples/l3fwd/l3fwd_em.c @@ -211,9 +211,9 @@ ipv6_hash_crc(const void *data, __rte_unused uint32_t data_len, static alignas(RTE_CACHE_LINE_SIZE) uint8_t ipv4_l3fwd_out_if[L3FWD_HASH_ENTRIES]; static alignas(RTE_CACHE_LINE_SIZE) uint8_t ipv6_l3fwd_out_if[L3FWD_HASH_ENTRIES]; -static rte_xmm_t mask0; -static rte_xmm_t mask1; -static rte_xmm_t mask2; +static rte_xmm_t xmm_mask0; +static rte_xmm_t xmm_mask1; +static rte_xmm_t xmm_mask2; #if defined(__SSE2__) static inline xmm_t @@ -275,7 +275,7 @@ em_get_ipv4_dst_port(void *ipv4_hdr, uint16_t portid, void *lookup_struct) * Get 5 tuple: dst port, src port, dst IP address, * src IP address and protocol. */ - key.xmm = em_mask_key(ipv4_hdr, mask0.x); + key.xmm = em_mask_key(ipv4_hdr, xmm_mask0.x); /* Find destination port */ ret = rte_hash_lookup(ipv4_l3fwd_lookup_struct, (const void *)&key); @@ -298,7 +298,7 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct) void *data2 = ((uint8_t *)ipv6_hdr) + sizeof(xmm_t) + sizeof(xmm_t); /* Get part of 5 tuple: src IP address lower 96 bits and protocol */ - key.xmm[0] = em_mask_key(data0, mask1.x); + key.xmm[0] = em_mask_key(data0, xmm_mask1.x); /* * Get part of 5 tuple: dst IP address lower 96 bits @@ -314,7 +314,7 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct) * Get part of 5 tuple: dst port and src port * and dst IP address higher 32 bits. */ - key.xmm[2] = em_mask_key(data2, mask2.x); + key.xmm[2] = em_mask_key(data2, xmm_mask2.x); /* Find destination port */ ret = rte_hash_lookup(ipv6_l3fwd_lookup_struct, (const void *)&key); @@ -375,8 +375,9 @@ populate_ipv4_flow_into_table(const struct rte_hash *h) char srcbuf[INET6_ADDRSTRLEN]; char dstbuf[INET6_ADDRSTRLEN]; - mask0 = (rte_xmm_t){.u32 = {BIT_8_TO_15, ALL_32_BITS, - ALL_32_BITS, ALL_32_BITS} }; + xmm_mask0 = (rte_xmm_t) { + .u32 = { BIT_8_TO_15, ALL_32_BITS, ALL_32_BITS, ALL_32_BITS } + }; for (i = 0; i < route_num_v4; i++) { struct em_rule *entry; @@ -427,10 +428,13 @@ populate_ipv6_flow_into_table(const struct rte_hash *h) char srcbuf[INET6_ADDRSTRLEN]; char dstbuf[INET6_ADDRSTRLEN]; - mask1 = (rte_xmm_t){.u32 = {BIT_16_TO_23, ALL_32_BITS, - ALL_32_BITS, ALL_32_BITS} }; + xmm_mask1 = (rte_xmm_t){ + .u32 = { BIT_16_TO_23, ALL_32_BITS, ALL_32_BITS, ALL_32_BITS } + }; - mask2 = (rte_xmm_t){.u32 = {ALL_32_BITS, ALL_32_BITS, 0, 0} }; + xmm_mask2 = (rte_xmm_t){ + .u32 = { ALL_32_BITS, ALL_32_BITS, 0, 0 } + }; for (i = 0; i < route_num_v6; i++) { struct em_rule *entry; @@ -507,11 +511,11 @@ em_check_ptype(int portid) } } - if (!ipv6 && !ptype_l3_ipv4_ext) { + if (!ipv6_enabled && !ptype_l3_ipv4_ext) { printf("port %d cannot parse RTE_PTYPE_L3_IPV4_EXT\n", portid); return 0; } - if (ipv6 && !ptype_l3_ipv6_ext) { + if (ipv6_enabled && !ptype_l3_ipv6_ext) { printf("port %d cannot parse RTE_PTYPE_L3_IPV6_EXT\n", portid); return 0; } @@ -1010,7 +1014,7 @@ setup_hash(const int socketid) * Use data from ipv4/ipv6 l3fwd config file * directly to initialize the hash table. */ - if (ipv6 == 0) { + if (!ipv6_enabled) { /* populate the ipv4 hash */ populate_ipv4_flow_into_table( ipv4_l3fwd_em_lookup_struct[socketid]); diff --git a/examples/l3fwd/l3fwd_em_hlm.h b/examples/l3fwd/l3fwd_em_hlm.h index c1d819997a..ccf5e34496 100644 --- a/examples/l3fwd/l3fwd_em_hlm.h +++ b/examples/l3fwd/l3fwd_em_hlm.h @@ -31,7 +31,7 @@ em_get_dst_port_ipv4xN(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv4_5tuple(m[i], mask0.x, &key[i]); + get_ipv4_5tuple(m[i], xmm_mask0.x, &key[i]); key_array[i] = &key[i]; } @@ -58,7 +58,7 @@ em_get_dst_port_ipv6xN(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv6_5tuple(m[i], mask1.x, mask2.x, &key[i]); + get_ipv6_5tuple(m[i], xmm_mask1.x, xmm_mask2.x, &key[i]); key_array[i] = &key[i]; } @@ -85,7 +85,7 @@ em_get_dst_port_ipv4xN_events(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv4_5tuple(m[i], mask0.x, &key[i]); + get_ipv4_5tuple(m[i], xmm_mask0.x, &key[i]); key_array[i] = &key[i]; } @@ -112,7 +112,7 @@ em_get_dst_port_ipv6xN_events(struct lcore_conf *qconf, struct rte_mbuf *m[], const void *key_array[EM_HASH_LOOKUP_COUNT]; for (i = 0; i < EM_HASH_LOOKUP_COUNT; i++) { - get_ipv6_5tuple(m[i], mask1.x, mask2.x, &key[i]); + get_ipv6_5tuple(m[i], xmm_mask1.x, xmm_mask2.x, &key[i]); key_array[i] = &key[i]; } diff --git a/examples/l3fwd/l3fwd_lpm.c b/examples/l3fwd/l3fwd_lpm.c index a71eee69ec..2d2651e750 100644 --- a/examples/l3fwd/l3fwd_lpm.c +++ b/examples/l3fwd/l3fwd_lpm.c @@ -681,12 +681,12 @@ lpm_check_ptype(int portid) ptype_l3_ipv6 = 1; } - if (!ipv6 && !ptype_l3_ipv4) { + if (!ipv6_enabled && !ptype_l3_ipv4) { printf("port %d cannot parse RTE_PTYPE_L3_IPV4\n", portid); return 0; } - if (ipv6 && !ptype_l3_ipv6) { + if (ipv6_enabled && !ptype_l3_ipv6) { printf("port %d cannot parse RTE_PTYPE_L3_IPV6\n", portid); return 0; } diff --git a/examples/l3fwd/l3fwd_route.h b/examples/l3fwd/l3fwd_route.h index b02b9cc11c..fd688504c6 100644 --- a/examples/l3fwd/l3fwd_route.h +++ b/examples/l3fwd/l3fwd_route.h @@ -14,14 +14,14 @@ #define IPV6_ADDR_U32 (IPV6_ADDR_LEN / sizeof(uint32_t)) #define GET_CB_FIELD(in, fd, base, lim, dlm) do { \ - unsigned long val; \ - char *end; \ + unsigned long _val; \ + char *_end; \ errno = 0; \ - val = strtoul((in), &end, (base)); \ - if (errno != 0 || end[0] != (dlm) || val > (lim)) \ + _val = strtoul((in), &_end, (base)); \ + if (errno != 0 || _end[0] != (dlm) || _val > (lim)) \ return -EINVAL; \ - (fd) = (typeof(fd))val; \ - (in) = end + 1; \ + (fd) = (typeof(fd))_val; \ + (in) = _end + 1; \ } while (0) struct ipv4_l3fwd_route { diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index 4c64194794..df035b508c 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -94,7 +94,7 @@ xmm_t val_eth[RTE_MAX_ETHPORTS]; uint32_t enabled_port_mask; /* Used only in exact match mode. */ -int ipv6; /**< ipv6 is false by default. */ +bool ipv6_enabled; /**< ipv6 is false by default. */ struct lcore_conf lcore_conf[RTE_MAX_LCORE]; @@ -254,21 +254,21 @@ const struct ipv6_l3fwd_route ipv6_l3fwd_route_array[] = { * API's called during initialization to setup ACL/EM/LPM rules. */ void -l3fwd_set_rule_ipv4_name(const char *optarg) +l3fwd_set_rule_ipv4_name(const char *arg) { - parm_config.rule_ipv4_name = optarg; + parm_config.rule_ipv4_name = arg; } void -l3fwd_set_rule_ipv6_name(const char *optarg) +l3fwd_set_rule_ipv6_name(const char *arg) { - parm_config.rule_ipv6_name = optarg; + parm_config.rule_ipv6_name = arg; } void -l3fwd_set_alg(const char *optarg) +l3fwd_set_alg(const char *arg) { - parm_config.alg = parse_acl_alg(optarg); + parm_config.alg = parse_acl_alg(arg); } /* @@ -559,17 +559,17 @@ parse_config(const char *q_arg) } static void -parse_eth_dest(const char *optarg) +parse_eth_dest(const char *arg) { uint16_t portid; char *port_end; uint8_t c, *dest, peer_addr[6]; errno = 0; - portid = strtoul(optarg, &port_end, 10); - if (errno != 0 || port_end == optarg || *port_end++ != ',') + portid = strtoul(arg, &port_end, 10); + if (errno != 0 || port_end == arg || *port_end++ != ',') rte_exit(EXIT_FAILURE, - "Invalid eth-dest: %s", optarg); + "Invalid eth-dest: %s", arg); if (portid >= RTE_MAX_ETHPORTS) rte_exit(EXIT_FAILURE, "eth-dest: port %d >= RTE_MAX_ETHPORTS(%d)\n", @@ -587,14 +587,14 @@ parse_eth_dest(const char *optarg) } static void -parse_mode(const char *optarg __rte_unused) +parse_mode(const char *arg __rte_unused) { #ifdef RTE_LIB_EVENTDEV struct l3fwd_event_resources *evt_rsrc = l3fwd_get_eventdev_rsrc(); - if (!strcmp(optarg, "poll")) + if (!strcmp(arg, "poll")) evt_rsrc->enabled = false; - else if (!strcmp(optarg, "eventdev")) + else if (!strcmp(arg, "eventdev")) evt_rsrc->enabled = true; #endif } @@ -633,15 +633,15 @@ parse_queue_size(const char *queue_size_arg, uint16_t *queue_size, int rx) #ifdef RTE_LIB_EVENTDEV static void -parse_eventq_sched(const char *optarg) +parse_eventq_sched(const char *arg) { struct l3fwd_event_resources *evt_rsrc = l3fwd_get_eventdev_rsrc(); - if (!strcmp(optarg, "ordered")) + if (!strcmp(arg, "ordered")) evt_rsrc->sched_type = RTE_SCHED_TYPE_ORDERED; - if (!strcmp(optarg, "atomic")) + if (!strcmp(arg, "atomic")) evt_rsrc->sched_type = RTE_SCHED_TYPE_ATOMIC; - if (!strcmp(optarg, "parallel")) + if (!strcmp(arg, "parallel")) evt_rsrc->sched_type = RTE_SCHED_TYPE_PARALLEL; } @@ -665,15 +665,15 @@ parse_event_eth_rx_queues(const char *eth_rx_queues) #endif static int -parse_lookup(const char *optarg) +parse_lookup(const char *arg) { - if (!strcmp(optarg, "em")) + if (!strcmp(arg, "em")) lookup_mode = L3FWD_LOOKUP_EM; - else if (!strcmp(optarg, "lpm")) + else if (!strcmp(arg, "lpm")) lookup_mode = L3FWD_LOOKUP_LPM; - else if (!strcmp(optarg, "fib")) + else if (!strcmp(arg, "fib")) lookup_mode = L3FWD_LOOKUP_FIB; - else if (!strcmp(optarg, "acl")) + else if (!strcmp(arg, "acl")) lookup_mode = L3FWD_LOOKUP_ACL; else { fprintf(stderr, "Invalid lookup option! Accepted options: acl, em, lpm, fib\n"); @@ -683,13 +683,13 @@ parse_lookup(const char *optarg) } static void -parse_mbcache_size(const char *optarg) +parse_mbcache_size(const char *arg) { unsigned long mb_cache_size; char *end = NULL; - mb_cache_size = strtoul(optarg, &end, 10); - if ((optarg[0] == '\0') || (end == NULL) || (*end != '\0')) + mb_cache_size = strtoul(arg, &end, 10); + if ((arg[0] == '\0') || (end == NULL) || (*end != '\0')) return; if (mb_cache_size <= RTE_MEMPOOL_CACHE_MAX_SIZE) mb_mempool_cache_size = (uint32_t)mb_cache_size; @@ -699,7 +699,7 @@ parse_mbcache_size(const char *optarg) } static void -parse_pkt_burst(const char *optarg, bool is_rx_burst, uint32_t *burst_sz) +parse_pkt_burst(const char *arg, bool is_rx_burst, uint32_t *burst_sz) { struct rte_eth_dev_info dev_info; unsigned long pkt_burst; @@ -708,8 +708,8 @@ parse_pkt_burst(const char *optarg, bool is_rx_burst, uint32_t *burst_sz) int ret; /* parse decimal string */ - pkt_burst = strtoul(optarg, &end, 10); - if ((optarg[0] == '\0') || (end == NULL) || (*end != '\0')) + pkt_burst = strtoul(arg, &end, 10); + if ((arg[0] == '\0') || (end == NULL) || (*end != '\0')) return; if (pkt_burst > MAX_PKT_BURST) { @@ -871,7 +871,7 @@ parse_args(int argc, char **argv) char **argvopt; int option_index; char *prgname = argv[0]; - uint8_t lcore_params = 0; + bool config_parsed = false; #ifdef RTE_LIB_EVENTDEV uint8_t eventq_sched = 0; uint8_t eth_rx_q = 0; @@ -924,7 +924,7 @@ parse_args(int argc, char **argv) print_usage(prgname); return -1; } - lcore_params = 1; + config_parsed = true; break; case CMD_LINK_OPT_ETH_LINK_SPEED_NUM: speed_num = atoi(optarg); @@ -966,7 +966,7 @@ parse_args(int argc, char **argv) break; case CMD_LINE_OPT_IPV6_NUM: - ipv6 = 1; + ipv6_enabled = true; break; case CMD_LINE_OPT_MAX_PKT_LEN_NUM: @@ -1056,9 +1056,9 @@ parse_args(int argc, char **argv) } } - RTE_SET_USED(lcore_params); /* needed if no eventdev block */ + RTE_SET_USED(config_parsed); /* needed if no eventdev block */ #ifdef RTE_LIB_EVENTDEV - if (evt_rsrc->enabled && lcore_params) { + if (evt_rsrc->enabled && config_parsed) { fprintf(stderr, "lcore config is not valid when event mode is selected\n"); return -1; } diff --git a/examples/l3fwd/meson.build b/examples/l3fwd/meson.build index a5c47c02b4..74144c7979 100644 --- a/examples/l3fwd/meson.build +++ b/examples/l3fwd/meson.build @@ -22,4 +22,3 @@ if dpdk_conf.has('RTE_LIB_EVENTDEV') deps += 'eventdev' endif cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
* [PATCH v2 23/23] examples/l3fwd-power: resolve shadow variable warnings 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger ` (21 preceding siblings ...) 2026-04-07 15:16 ` [PATCH v2 22/23] examples/l3fwd: resolve shadow variable warnings Stephen Hemminger @ 2026-04-07 15:16 ` Stephen Hemminger 22 siblings, 0 replies; 51+ messages in thread From: Stephen Hemminger @ 2026-04-07 15:16 UTC (permalink / raw) To: dev Cc: Stephen Hemminger, Bruce Richardson, Anatoly Burakov, Sivaprasad Tummala Rename function parameters to avoid shadowing the file-scope static arrays ipv4_l3fwd_lookup_struct and ipv6_l3fwd_lookup_struct. The new parameter names ipv4_lookup_struct and ipv6_lookup_struct match the member names used in struct lcore_conf. Fixes warnings with -Wshadow for get_ipv4_dst_port (both exact-match and LPM variants) and get_ipv6_dst_port. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/l3fwd-power/main.c | 12 ++++++------ examples/l3fwd-power/meson.build | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 02ec17d799..ff0e61e639 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -552,7 +552,7 @@ print_ipv6_key(struct ipv6_5tuple key) static inline uint16_t get_ipv4_dst_port(struct rte_ipv4_hdr *ipv4_hdr, uint16_t portid, - lookup_struct_t * ipv4_l3fwd_lookup_struct) + lookup_struct_t *ipv4_lookup_struct) { struct ipv4_5tuple key; struct rte_tcp_hdr *tcp; @@ -585,13 +585,13 @@ get_ipv4_dst_port(struct rte_ipv4_hdr *ipv4_hdr, uint16_t portid, } /* Find destination port */ - ret = rte_hash_lookup(ipv4_l3fwd_lookup_struct, (const void *)&key); + ret = rte_hash_lookup(ipv4_lookup_struct, (const void *)&key); return ((ret < 0) ? portid : ipv4_l3fwd_out_if[ret]); } static inline uint16_t get_ipv6_dst_port(struct rte_ipv6_hdr *ipv6_hdr, uint16_t portid, - lookup_struct_t *ipv6_l3fwd_lookup_struct) + lookup_struct_t *ipv6_lookup_struct) { struct ipv6_5tuple key; struct rte_tcp_hdr *tcp; @@ -625,7 +625,7 @@ get_ipv6_dst_port(struct rte_ipv6_hdr *ipv6_hdr, uint16_t portid, } /* Find destination port */ - ret = rte_hash_lookup(ipv6_l3fwd_lookup_struct, (const void *)&key); + ret = rte_hash_lookup(ipv6_lookup_struct, (const void *)&key); return ((ret < 0) ? portid : ipv6_l3fwd_out_if[ret]); } #endif @@ -633,11 +633,11 @@ get_ipv6_dst_port(struct rte_ipv6_hdr *ipv6_hdr, uint16_t portid, #if (APP_LOOKUP_METHOD == APP_LOOKUP_LPM) static inline uint16_t get_ipv4_dst_port(struct rte_ipv4_hdr *ipv4_hdr, uint16_t portid, - lookup_struct_t *ipv4_l3fwd_lookup_struct) + lookup_struct_t *ipv4_lookup_struct) { uint32_t next_hop; - return ((rte_lpm_lookup(ipv4_l3fwd_lookup_struct, + return ((rte_lpm_lookup(ipv4_lookup_struct, rte_be_to_cpu_32(ipv4_hdr->dst_addr), &next_hop) == 0)? next_hop : portid); } diff --git a/examples/l3fwd-power/meson.build b/examples/l3fwd-power/meson.build index e45cda86f9..5ff4466cac 100644 --- a/examples/l3fwd-power/meson.build +++ b/examples/l3fwd-power/meson.build @@ -13,4 +13,3 @@ sources = files( 'perf_core.c', ) cflags += no_wvla_cflag -cflags += no_shadow_cflag -- 2.53.0 ^ permalink raw reply related [flat|nested] 51+ messages in thread
end of thread, other threads:[~2026-04-08 0:32 UTC | newest] Thread overview: 51+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-07 3:49 [PATCH 00/23] examples: enable -Wshadow across all examples Stephen Hemminger 2026-04-07 3:49 ` [PATCH 01/23] examples/ethtool: fix shadow variable warning Stephen Hemminger 2026-04-07 3:49 ` [PATCH 02/23] examples/eventdev_pipeline: " Stephen Hemminger 2026-04-07 3:49 ` [PATCH 03/23] examples/dma: fix shadow variable warnings Stephen Hemminger 2026-04-07 3:49 ` [PATCH 04/23] examples/packet_ordering: fix shadow variable warning Stephen Hemminger 2026-04-07 3:49 ` [PATCH 05/23] examples/bond: fix shadow variable warnings Stephen Hemminger 2026-04-07 3:49 ` [PATCH 06/23] examples/vmdq: fix shadow variable warning Stephen Hemminger 2026-04-07 3:49 ` [PATCH 07/23] examples/server_node_efd: fix shadowed variable Stephen Hemminger 2026-04-07 3:49 ` [PATCH 08/23] examples/flow_filtering: fix shadowed variables Stephen Hemminger 2026-04-07 3:49 ` [PATCH 09/23] examples/ipsec-secgw: " Stephen Hemminger 2026-04-07 3:49 ` [PATCH 10/23] examples/ip_pipeline: fix shadow variable Stephen Hemminger 2026-04-07 3:49 ` [PATCH 11/23] examples/multi_process: fix shadowed variable Stephen Hemminger 2026-04-07 3:49 ` [PATCH 12/23] examples/vm_power_manage: enable shadow warnings Stephen Hemminger 2026-04-07 3:49 ` [PATCH 13/23] examples/bbdev_app: " Stephen Hemminger 2026-04-07 3:49 ` [PATCH 14/23] examples/ptpclient: fix shadow variable warnings Stephen Hemminger 2026-04-07 3:49 ` [PATCH 15/23] examples/vhost: fix shadow warnings Stephen Hemminger 2026-04-07 3:49 ` [PATCH 16/23] examples/qos_sched: eliminate shadowed variables Stephen Hemminger 2026-04-07 3:49 ` [PATCH 17/23] examples/l2fwd-jobstats: fix shadowed variable Stephen Hemminger 2026-04-07 3:49 ` [PATCH 18/23] examples/l2fwd-crypto: remove no shadow flag Stephen Hemminger 2026-04-07 3:49 ` [PATCH 19/23] examples/l2fwd-event: " Stephen Hemminger 2026-04-07 3:49 ` [PATCH 20/23] examples/l2fwd-keepalive: fix shadow variable warning Stephen Hemminger 2026-04-07 3:49 ` [PATCH 21/23] examples/l3fwd-graph: remove no shadow flag Stephen Hemminger 2026-04-07 3:49 ` [PATCH 22/23] examples/l3fwd: fix shadow variable warnings Stephen Hemminger 2026-04-07 3:49 ` [PATCH 23/23] examples/l3fwd-power: " Stephen Hemminger 2026-04-07 9:22 ` [PATCH 00/23] examples: enable -Wshadow across all examples Bruce Richardson 2026-04-07 15:15 ` [PATCH v2 00/23] examples: fix -Wshadow warnings Stephen Hemminger 2026-04-07 15:15 ` [PATCH v2 01/23] examples/ethtool: resolve shadow variable warnings Stephen Hemminger 2026-04-08 0:32 ` fengchengwen 2026-04-07 15:15 ` [PATCH v2 02/23] examples/eventdev_pipeline: resolve shadow variable warning Stephen Hemminger 2026-04-07 15:15 ` [PATCH v2 03/23] examples/dma: resolve shadow variable warnings Stephen Hemminger 2026-04-08 0:30 ` fengchengwen 2026-04-07 15:16 ` [PATCH v2 04/23] examples/packet_ordering: resolve shadow variable warning Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 05/23] examples/bond: resolve shadow variable warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 06/23] examples/vmdq: resolve shadow variable warning Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 07/23] examples/server_node_efd: " Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 08/23] examples/flow_filtering: resolve shadowed variable warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 09/23] examples/ipsec-secgw: " Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 10/23] examples/ip_pipeline: resolve shadow variable warning Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 11/23] examples/multi_process: resolve shadowed variable warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 12/23] examples/vm_power_manage: enable shadow warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 13/23] examples/bbdev_app: " Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 14/23] examples/ptpclient: resolve shadow variable warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 15/23] examples/vhost: resolve shadow warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 16/23] examples/qos_sched: eliminate shadowed variables Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 17/23] examples/l2fwd-jobstats: resolve shadowed variable Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 18/23] examples/l2fwd-crypto: resolve shadow variable Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 19/23] examples/l2fwd-event: resolve shadowed variable Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 20/23] examples/l2fwd-keepalive: resolve shadow variable warning Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 21/23] examples/l3fwd-graph: " Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 22/23] examples/l3fwd: resolve shadow variable warnings Stephen Hemminger 2026-04-07 15:16 ` [PATCH v2 23/23] examples/l3fwd-power: " Stephen Hemminger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox