Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7081cf86 authored by Yongqiang Liu's avatar Yongqiang Liu Committed by Greg Kroah-Hartman
Browse files

net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq



[ Upstream commit 42330a32933fb42180c52022804dcf09f47a2f99 ]

The nicvf_probe() won't destroy workqueue when register_netdev()
failed. Add destroy_workqueue err handle case to fix this issue.

Fixes: 2ecbe4f4 ("net: thunderx: replace global nicvf_rx_mode_wq work queue for all VFs to private for each of them.")
Signed-off-by: default avatarYongqiang Liu <liuyongqiang13@huawei.com>
Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
Link: https://lore.kernel.org/r/20221203094125.602812-1-liuyongqiang13@huawei.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent bc06207b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2268,7 +2268,7 @@ static int nicvf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
	err = register_netdev(netdev);
	if (err) {
		dev_err(dev, "Failed to register netdevice\n");
		goto err_unregister_interrupts;
		goto err_destroy_workqueue;
	}

	nic->msg_enable = debug;
@@ -2277,6 +2277,8 @@ static int nicvf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

	return 0;

err_destroy_workqueue:
	destroy_workqueue(nic->nicvf_rx_mode_wq);
err_unregister_interrupts:
	nicvf_unregister_interrupts(nic);
err_free_netdev: