[dpdk-dev] [PATCH v1 3/3] net/failsafe: fix default service proxy state
Gaetan Rivet
grive at u256.net
Tue May 5 21:10:31 CEST 2020
The service proxy is initialized at 0. This is assuming that all of
its fields are invalid at 0. The issue is that a file descriptor at 0 is a
valid one.
The value -1 is used as sentinel during cleanup. Initialize the RX proxy
file descriptor to -1.
Fixes: 366226dd859f ("net/failsafe: fix fd leak")
Signed-off-by: Gaetan Rivet <grive at u256.net>
Cc: wangyunjian at huawei.com
Cc: Ali Alnubani <alialnu at mellanox.com>
---
drivers/net/failsafe/failsafe.c | 1 +
drivers/net/failsafe/failsafe_private.h | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c
index 8af31d71b..72362f35d 100644
--- a/drivers/net/failsafe/failsafe.c
+++ b/drivers/net/failsafe/failsafe.c
@@ -190,6 +190,7 @@ fs_eth_dev_create(struct rte_vdev_device *vdev)
}
priv = PRIV(dev);
priv->data = dev->data;
+ priv->rxp = FS_RX_PROXY_INIT;
dev->dev_ops = &failsafe_ops;
dev->data->mac_addrs = &PRIV(dev)->mac_addrs[0];
dev->data->dev_link = eth_link;
diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h
index 8e9706aef..651578a12 100644
--- a/drivers/net/failsafe/failsafe_private.h
+++ b/drivers/net/failsafe/failsafe_private.h
@@ -58,6 +58,14 @@ struct rx_proxy {
enum rxp_service_state sstate;
};
+#define FS_RX_PROXY_INIT (struct rx_proxy){ \
+ .efd = -1, \
+ .evec = NULL, \
+ .sid = 0, \
+ .scid = 0, \
+ .sstate = SS_NO_SERVICE, \
+}
+
struct rxq {
struct fs_priv *priv;
uint16_t qid;
--
2.26.2
More information about the dev
mailing list