From: wenxu <we...@ucloud.cn>

Ipsec and tls netdev features build should be done after the
mlx5e_init_ipesc/tls which finishs the init for the ipsec/tls
in the driver.

Fixes: 3ef14e463f6e ("net/mlx5e: Separate between netdev objects and mlx5e 
profiles initialization")
Signed-off-by: wenxu <we...@ucloud.cn>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c 
b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 158f947..14c3f1f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5218,8 +5218,6 @@ static void mlx5e_build_nic_netdev(struct net_device 
*netdev)
        netdev->priv_flags       |= IFF_UNICAST_FLT;
 
        mlx5e_set_netdev_dev_addr(netdev);
-       mlx5e_ipsec_build_netdev(priv);
-       mlx5e_tls_build_netdev(priv);
 }
 
 void mlx5e_create_q_counters(struct mlx5e_priv *priv)
@@ -5274,10 +5272,15 @@ static int mlx5e_nic_init(struct mlx5_core_dev *mdev,
        err = mlx5e_ipsec_init(priv);
        if (err)
                mlx5_core_err(mdev, "IPSec initialization failed, %d\n", err);
+       else
+               mlx5e_ipsec_build_netdev(priv);
+
 
        err = mlx5e_tls_init(priv);
        if (err)
                mlx5_core_err(mdev, "TLS initialization failed, %d\n", err);
+       else
+               mlx5e_tls_build_netdev(priv);
 
        err = mlx5e_devlink_port_register(priv);
        if (err)
-- 
1.8.3.1

Reply via email to