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