If setting up device resources fails during gve_init_priv, tear down the
flow subsystem if it was initialized to avoid leaking the flow rule
bitmap.

Fixes: 82ef40fb2e7e ("net/gve: support flow API")
Cc: [email protected]

Signed-off-by: Jasper Tran O'Leary <[email protected]>
Reviewed-by: Joshua Washington <[email protected]>
---
 drivers/net/gve/gve_ethdev.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index 23a4c118b..90d8797b0 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -1747,8 +1747,13 @@ setup_device:
        }
 
        err = gve_setup_device_resources(priv);
-       if (!err)
-               return 0;
+       if (err)
+               goto free_flow_subsystem;
+
+       return 0;
+free_flow_subsystem:
+       if (gve_get_flow_subsystem_ok(priv))
+               gve_teardown_flow_subsystem(priv);
 free_adminq:
        process_priv->ctrl_ops->free_ctrl_plane(priv);
        return err;
-- 
2.56.0.307.g5fe7bd680c-goog

Reply via email to