public inbox for dev@dpdk.org
 help / color / mirror / Atom feed
* [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, &eth_addr);
+	if (ptp->seqID_FOLLOWUP == ptp->seqID_SYNC) {
+		ret = rte_eth_macaddr_get(ptp->portid, &eth_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

* [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

* [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, &eth_addr);
+	if (ptp->seqID_FOLLOWUP == ptp->seqID_SYNC) {
+		ret = rte_eth_macaddr_get(ptp->portid, &eth_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

* 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

* 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

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