From: Aya Levin <[email protected]>

[ Upstream commit ef1ce7d7b67b46661091c7ccc0396186b7a247ef ]

Check return value from mlx5e_attach_netdev, add error path on failure.

Fixes: 48935bbb7ae8 ("net/mlx5e: IPoIB, Add netdevice profile skeleton")
Signed-off-by: Aya Levin <[email protected]>
Reviewed-by: Feras Daoud <[email protected]>
Signed-off-by: Saeed Mahameed <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

--- a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
@@ -662,7 +662,9 @@ struct net_device *mlx5_rdma_netdev_allo
 
        profile->init(mdev, netdev, profile, ipriv);
 
-       mlx5e_attach_netdev(epriv);
+       err = mlx5e_attach_netdev(epriv);
+       if (err)
+               goto detach;
        netif_carrier_off(netdev);
 
        /* set rdma_netdev func pointers */
@@ -678,6 +680,11 @@ struct net_device *mlx5_rdma_netdev_allo
 
        return netdev;
 
+detach:
+       profile->cleanup(epriv);
+       if (ipriv->sub_interface)
+               return NULL;
+       mlx5e_destroy_mdev_resources(mdev);
 destroy_ht:
        mlx5i_pkey_qpn_ht_cleanup(netdev);
 destroy_wq:


Reply via email to