[dpdk-dev] [PATCH] net/enic: fix build with GCC 7.5
Ferruh Yigit
ferruh.yigit at intel.com
Fri Oct 15 12:28:18 CEST 2021
Build error:
../drivers/net/enic/enic_fm_flow.c: In function 'enic_fm_flow_parse':
../drivers/net/enic/enic_fm_flow.c:1467:24:
error: 'dev' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
struct rte_eth_dev *dev;
^~~
../drivers/net/enic/enic_fm_flow.c:1580:24:
error: 'dev' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
struct rte_eth_dev *dev;
^~~
../drivers/net/enic/enic_fm_flow.c:1599:24:
error: 'dev' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
struct rte_eth_dev *dev;
^~~
Build error looks like false positive, but to silence the compiler
initializing the pointer with NULL.
Fixes: 7968917ccf64 ("net/enic: support meta flow actions to overrule destinations")
Reported-by: David Marchand <david.marchand at redhat.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
Cc: andrew.rybchenko at oktetlabs.ru
I am not sure about the solution and I don't have environment to verify,
sending this patch to verify the solution in CI and trigger discussion
for fix.
The patch is still in next-net, when a proper fix is found, it can be
squashed in next-net.
---
drivers/net/enic/enic_fm_flow.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/enic/enic_fm_flow.c b/drivers/net/enic/enic_fm_flow.c
index 4092ff1f6154..2c60bb864e23 100644
--- a/drivers/net/enic/enic_fm_flow.c
+++ b/drivers/net/enic/enic_fm_flow.c
@@ -1464,7 +1464,7 @@ enic_fm_copy_action(struct enic_flowman *fm,
}
case RTE_FLOW_ACTION_TYPE_PORT_ID: {
const struct rte_flow_action_port_id *port;
- struct rte_eth_dev *dev;
+ struct rte_eth_dev *dev = NULL;
if (!ingress && (overlap & PORT_ID)) {
ENICPMD_LOG(DEBUG, "cannot have multiple egress PORT_ID actions");
@@ -1577,7 +1577,7 @@ enic_fm_copy_action(struct enic_flowman *fm,
}
case RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR: {
const struct rte_flow_action_ethdev *ethdev;
- struct rte_eth_dev *dev;
+ struct rte_eth_dev *dev = NULL;
ethdev = actions->conf;
ret = enic_fm_check_transfer_dst(enic, ethdev->port_id,
@@ -1596,7 +1596,7 @@ enic_fm_copy_action(struct enic_flowman *fm,
}
case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT: {
const struct rte_flow_action_ethdev *ethdev;
- struct rte_eth_dev *dev;
+ struct rte_eth_dev *dev = NULL;
if (overlap & PORT_ID) {
ENICPMD_LOG(DEBUG, "cannot have multiple egress PORT_ID actions");
--
2.31.1
More information about the dev
mailing list