From: Jasper Tran O'Leary <[email protected]>
Free rss_config resources during device close to avoid leaking
redirection table and hash key memory. Also, memset the entire
gve_rss_config struct to 0 to avoid leaking RSS hash function or hash
types.
Fixes: 63ef54569760 ("net/gve: support RSS configuration update")
Cc: [email protected]
Signed-off-by: Jasper Tran O'Leary <[email protected]>
Signed-off-by: Joshua Washington <[email protected]>
---
v3:
- Clear out entire gve_rss_config struct when freeing.
- Reorder to make this patch first in the series.
- Update Fixes tag to earliest commit with the issue.
---
drivers/net/gve/gve_ethdev.c | 1 +
drivers/net/gve/gve_rss.c | 3 +--
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index c990920a4d..80623979a8 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -699,6 +699,7 @@ gve_teardown_device_resources(struct gve_priv *priv)
gve_free_ptype_lut_dqo(priv);
gve_free_counter_array(priv);
gve_free_irq_db(priv);
+ gve_free_rss_config(&priv->rss_config);
gve_clear_device_resources_ok(priv);
}
diff --git a/drivers/net/gve/gve_rss.c b/drivers/net/gve/gve_rss.c
index 67b910ed22..4084d7955f 100644
--- a/drivers/net/gve/gve_rss.c
+++ b/drivers/net/gve/gve_rss.c
@@ -71,9 +71,8 @@ void
gve_free_rss_config(struct gve_rss_config *gve_rss_conf)
{
rte_free(gve_rss_conf->indir);
- gve_rss_conf->indir = NULL;
rte_free(gve_rss_conf->key);
- gve_rss_conf->key = NULL;
+ memset(gve_rss_conf, 0, sizeof(*gve_rss_conf));
}
int
--
2.56.0.170.g584c36229d-goog