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