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

Reply via email to