| From fd6ac0f1393630582fa6c5d48bfcb9569b0569cf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 1 Jul 2021 22:18:24 +0200 |
| Subject: gve: Fix an error handling path in 'gve_probe()' |
| |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| |
| [ Upstream commit 2342ae10d1272d411a468a85a67647dd115b344f ] |
| |
| 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: 893ce44df565 ("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> |
| --- |
| drivers/net/ethernet/google/gve/gve_main.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c |
| index 79cefe85a799..b43c6ff07614 100644 |
| --- a/drivers/net/ethernet/google/gve/gve_main.c |
| +++ b/drivers/net/ethernet/google/gve/gve_main.c |
| @@ -1349,13 +1349,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); |
| |
| -- |
| 2.30.2 |
| |