Skip to content

Commit

Permalink
gve: Fix an error handling path in 'gve_probe()'
Browse files Browse the repository at this point in the history
[ Upstream commit 2342ae1 ]

If the 'register_netdev() call fails, we must release the resources
allocated by the previous 'gve_init_priv()' call, as already done in the
remove function.

Add a new label and the missing 'gve_teardown_priv_resources()' in the
error handling path.

Fixes: 893ce44 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Catherine Sullivan <csully@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
tititiou36 authored and gregkh committed Jul 28, 2021
1 parent 813449f commit 78e4baf
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/net/ethernet/google/gve/gve_main.c
Expand Up @@ -1340,13 +1340,16 @@ static int gve_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

err = register_netdev(dev);
if (err)
goto abort_with_wq;
goto abort_with_gve_init;

dev_info(&pdev->dev, "GVE version %s\n", gve_version_str);
gve_clear_probe_in_progress(priv);
queue_work(priv->gve_wq, &priv->service_task);
return 0;

abort_with_gve_init:
gve_teardown_priv_resources(priv);

abort_with_wq:
destroy_workqueue(priv->gve_wq);

Expand Down

0 comments on commit 78e4baf

Please sign in to comment.