OSDN Git Service

net/mlx5e: IPoIB, Add error path in mlx5_rdma_setup_rn
authorAya Levin <ayal@mellanox.com>
Sun, 7 Jul 2019 13:57:06 +0000 (16:57 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 11 Jul 2019 18:45:04 +0000 (11:45 -0700)
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 <ayal@mellanox.com>
Reviewed-by: Feras Daoud <ferasda@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c

index 9ca492b..603d294 100644 (file)
@@ -698,7 +698,9 @@ static int mlx5_rdma_setup_rn(struct ib_device *ibdev, u8 port_num,
 
        prof->init(mdev, netdev, prof, ipriv);
 
-       mlx5e_attach_netdev(epriv);
+       err = mlx5e_attach_netdev(epriv);
+       if (err)
+               goto detach;
        netif_carrier_off(netdev);
 
        /* set rdma_netdev func pointers */
@@ -714,6 +716,11 @@ static int mlx5_rdma_setup_rn(struct ib_device *ibdev, u8 port_num,
 
        return 0;
 
+detach:
+       prof->cleanup(epriv);
+       if (ipriv->sub_interface)
+               return err;
+       mlx5e_destroy_mdev_resources(mdev);
 destroy_ht:
        mlx5i_pkey_qpn_ht_cleanup(netdev);
        return err;