Skip to content

Commit 8f0d145

Browse files
shayshyiSaeed Mahameed
authored andcommitted
net/mlx5: Serialize module cleanup with reload and remove
Currently, remove and reload flows can run in parallel to module cleanup. This design is error prone. For example: aux_drivers callbacks are called from both cleanup and remove flows with different lockings, which can cause a deadlock[1]. Hence, serialize module cleanup with reload and remove. [1] cleanup remove ------- ------ auxiliary_driver_unregister(); devl_lock() auxiliary_device_delete(mlx5e_aux) device_lock(mlx5e_aux) devl_lock() device_lock(mlx5e_aux) Fixes: 912cebf ("net/mlx5e: Connect ethernet part to auxiliary bus") Signed-off-by: Shay Drory <[email protected]> Reviewed-by: Moshe Shemesh <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 184e1e4 commit 8f0d145

File tree

1 file changed

+7
-7
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+7
-7
lines changed

drivers/net/ethernet/mellanox/mlx5/core/main.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2110,34 +2110,34 @@ static int __init mlx5_init(void)
21102110
mlx5_core_verify_params();
21112111
mlx5_register_debugfs();
21122112

2113-
err = pci_register_driver(&mlx5_core_driver);
2113+
err = mlx5e_init();
21142114
if (err)
21152115
goto err_debug;
21162116

21172117
err = mlx5_sf_driver_register();
21182118
if (err)
21192119
goto err_sf;
21202120

2121-
err = mlx5e_init();
2121+
err = pci_register_driver(&mlx5_core_driver);
21222122
if (err)
2123-
goto err_en;
2123+
goto err_pci;
21242124

21252125
return 0;
21262126

2127-
err_en:
2127+
err_pci:
21282128
mlx5_sf_driver_unregister();
21292129
err_sf:
2130-
pci_unregister_driver(&mlx5_core_driver);
2130+
mlx5e_cleanup();
21312131
err_debug:
21322132
mlx5_unregister_debugfs();
21332133
return err;
21342134
}
21352135

21362136
static void __exit mlx5_cleanup(void)
21372137
{
2138-
mlx5e_cleanup();
2139-
mlx5_sf_driver_unregister();
21402138
pci_unregister_driver(&mlx5_core_driver);
2139+
mlx5_sf_driver_unregister();
2140+
mlx5e_cleanup();
21412141
mlx5_unregister_debugfs();
21422142
}
21432143

0 commit comments

Comments
 (0)