mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH net] octeontx2-vf: fix workqueue and netdev race in probe/remove
@ 2026-08-20  8:36 nshettyj
  2026-08-24 10:35 ` Simon Horman
  2026-08-24 18:40 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 3+ messages in thread
From: nshettyj @ 2026-08-20  8:36 UTC (permalink / raw)
  To: netdev, linux-kernel
  Cc: Anshumali Gaur, Nitin Shetty J, Sunil Goutham, Geetha sowjanya,
	Ratheesh Kannoth, Subbaraya Sundeep, Bharat Bhushan, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Naveen Mamindlapalli, Sunil Kovvuri Goutham

From: Anshumali Gaur <agaur@marvell.com>

Initialize the VF workqueue before register_netdev() so ndo_set_rx_mode
does not queue work on a NULL workqueue. Unregister the netdev before
destroying the workqueue, and add proper probe error cleanup.

Fixes: cbc100aa2205 ("octeontx2-nicvf: add ndo_set_rx_mode support for multicast & promisc")
Signed-off-by: Nitin Shetty J <nshettyj@marvell.com>
Signed-off-by: Anshumali Gaur <agaur@marvell.com>
---
 .../ethernet/marvell/octeontx2/nic/otx2_vf.c  | 20 ++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
index b022f52c6845..fcdf891f90b5 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
@@ -737,16 +737,16 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	if (err)
 		goto err_ptp_destroy;
 
+	err = otx2_vf_wq_init(vf);
+	if (err)
+		goto err_ipsec_clean;
+
 	err = register_netdev(netdev);
 	if (err) {
 		dev_err(dev, "Failed to register netdevice\n");
-		goto err_ipsec_clean;
+		goto err_wq_destroy;
 	}
 
-	err = otx2_vf_wq_init(vf);
-	if (err)
-		goto err_unreg_netdev;
-
 	otx2vf_set_ethtool_ops(netdev);
 
 	err = otx2vf_mcam_flow_init(vf);
@@ -789,6 +789,10 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	otx2_shutdown_tc(vf);
 err_unreg_netdev:
 	unregister_netdev(netdev);
+err_wq_destroy:
+	cancel_work_sync(&vf->reset_task);
+	cancel_work_sync(&vf->rx_mode_work);
+	destroy_workqueue(vf->otx2_wq);
 err_ipsec_clean:
 	cn10k_ipsec_clean(vf);
 err_ptp_destroy:
@@ -836,11 +840,13 @@ static void otx2vf_remove(struct pci_dev *pdev)
 	}
 #endif
 
-	cancel_work_sync(&vf->reset_task);
 	otx2_unregister_dl(vf);
 	unregister_netdev(netdev);
-	if (vf->otx2_wq)
+	if (vf->otx2_wq) {
+		cancel_work_sync(&vf->reset_task);
+		cancel_work_sync(&vf->rx_mode_work);
 		destroy_workqueue(vf->otx2_wq);
+	}
 	cn10k_ipsec_clean(vf);
 	otx2_ptp_destroy(vf);
 	otx2_mcam_flow_del(vf);
-- 
2.48.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] octeontx2-vf: fix workqueue and netdev race in probe/remove
  2026-08-20  8:36 [PATCH net] octeontx2-vf: fix workqueue and netdev race in probe/remove nshettyj
@ 2026-08-24 10:35 ` Simon Horman
  2026-08-24 18:40 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: Simon Horman @ 2026-08-24 10:35 UTC (permalink / raw)
  To: nshettyj
  Cc: netdev, linux-kernel, Anshumali Gaur, Sunil Goutham,
	Geetha sowjanya, Ratheesh Kannoth, Subbaraya Sundeep,
	Bharat Bhushan, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Naveen Mamindlapalli,
	Sunil Kovvuri Goutham

On Thu, Aug 20, 2026 at 02:06:34PM +0530, nshettyj@marvell.com wrote:
> From: Anshumali Gaur <agaur@marvell.com>
> 
> Initialize the VF workqueue before register_netdev() so ndo_set_rx_mode
> does not queue work on a NULL workqueue. Unregister the netdev before
> destroying the workqueue, and add proper probe error cleanup.
> 
> Fixes: cbc100aa2205 ("octeontx2-nicvf: add ndo_set_rx_mode support for multicast & promisc")
> Signed-off-by: Nitin Shetty J <nshettyj@marvell.com>
> Signed-off-by: Anshumali Gaur <agaur@marvell.com>

Reviewed-by: Simon Horman <horms@kernel.org>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] octeontx2-vf: fix workqueue and netdev race in probe/remove
  2026-08-20  8:36 [PATCH net] octeontx2-vf: fix workqueue and netdev race in probe/remove nshettyj
  2026-08-24 10:35 ` Simon Horman
@ 2026-08-24 18:40 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-08-24 18:40 UTC (permalink / raw)
  To: Nitin Shetty J
  Cc: netdev, linux-kernel, agaur, sgoutham, gakula, rkannoth, sbhatta,
	bbhushan2, andrew+netdev, davem, edumazet, kuba, pabeni, naveenm,
	Sunil.Goutham

Hello:

This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 20 Aug 2026 14:06:34 +0530 you wrote:
> From: Anshumali Gaur <agaur@marvell.com>
> 
> Initialize the VF workqueue before register_netdev() so ndo_set_rx_mode
> does not queue work on a NULL workqueue. Unregister the netdev before
> destroying the workqueue, and add proper probe error cleanup.
> 
> Fixes: cbc100aa2205 ("octeontx2-nicvf: add ndo_set_rx_mode support for multicast & promisc")
> Signed-off-by: Nitin Shetty J <nshettyj@marvell.com>
> Signed-off-by: Anshumali Gaur <agaur@marvell.com>
> 
> [...]

Here is the summary with links:
  - [net] octeontx2-vf: fix workqueue and netdev race in probe/remove
    https://git.kernel.org/netdev/net/c/3ba97ff4f873

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-24 18:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-20  8:36 [PATCH net] octeontx2-vf: fix workqueue and netdev race in probe/remove nshettyj
2026-08-24 10:35 ` Simon Horman
2026-08-24 18:40 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®