diff options
author | Mohamad Haj Yahia | 2016-10-25 17:36:30 +0200 |
---|---|---|
committer | David S. Miller | 2016-10-29 18:00:39 +0200 |
commit | 5e1e93c7047381b81236f82f60c15d49c510d1a7 (patch) | |
tree | 790c14038f5d19c8acb931d4848177d3e41fedec /drivers/net/ethernet/mellanox/mlx5/core/en_main.c | |
parent | net/mlx5e: Choose best nearest LRO timeout (diff) | |
download | kernel-qcow2-linux-5e1e93c7047381b81236f82f60c15d49c510d1a7.tar.gz kernel-qcow2-linux-5e1e93c7047381b81236f82f60c15d49c510d1a7.tar.xz kernel-qcow2-linux-5e1e93c7047381b81236f82f60c15d49c510d1a7.zip |
net/mlx5e: Unregister netdev before detaching it
Detaching the netdev before unregistering it cause some netdev cleanup
ndos to fail because they check presence of the netdev, so we need to
unregister the netdev first.
Fixes: 26e59d8077a3 ('net/mlx5e: Implement mlx5e interface attach/detach callbacks')
Signed-off-by: Mohamad Haj Yahia <mohamad@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en_main.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 5c8ab3eabe9c..f4c687ce4c59 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -4048,7 +4048,6 @@ void mlx5e_destroy_netdev(struct mlx5_core_dev *mdev, struct mlx5e_priv *priv) const struct mlx5e_profile *profile = priv->profile; struct net_device *netdev = priv->netdev; - unregister_netdev(netdev); destroy_workqueue(priv->wq); if (profile->cleanup) profile->cleanup(priv); @@ -4065,6 +4064,7 @@ static void mlx5e_remove(struct mlx5_core_dev *mdev, void *vpriv) for (vport = 1; vport < total_vfs; vport++) mlx5_eswitch_unregister_vport_rep(esw, vport); + unregister_netdev(priv->netdev); mlx5e_detach(mdev, vpriv); mlx5e_destroy_netdev(mdev, priv); } |