Index: sys/dev/mlx5/mlx5_en/mlx5_en_main.c =================================================================== --- sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -4338,6 +4338,7 @@ static void * mlx5e_create_ifp(struct mlx5_core_dev *mdev) { + static bool first = true; struct ifnet *ifp; struct mlx5e_priv *priv; u8 dev_addr[ETHER_ADDR_LEN] __aligned(4); @@ -4354,6 +4355,11 @@ u32 speeds_num; struct media media_entry = {}; + if (first) { + printf("%s\n", mlx5e_version); + first = false; + } + if (mlx5e_check_required_hca_cap(mdev)) { mlx5_core_dbg(mdev, "mlx5e_check_required_hca_cap() failed\n"); return (NULL); @@ -4790,14 +4796,6 @@ mlx5_unregister_interface(&mlx5e_interface); } -static void -mlx5e_show_version(void __unused *arg) -{ - - printf("%s", mlx5e_version); -} -SYSINIT(mlx5e_show_version, SI_SUB_DRIVERS, SI_ORDER_ANY, mlx5e_show_version, NULL); - module_init_order(mlx5e_init, SI_ORDER_SIXTH); module_exit_order(mlx5e_cleanup, SI_ORDER_SIXTH); Index: sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c =================================================================== --- sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c +++ sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c @@ -3258,12 +3258,18 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev) { + static bool first = true; struct mlx5_ib_dev *dev; enum rdma_link_layer ll; int port_type_cap; int err; int i; + if (first) { + printf("%s\n", mlx5_version); + first = false; + } + port_type_cap = MLX5_CAP_GEN(mdev, port_type); ll = mlx5_port_type_cap_to_rdma_ll(port_type_cap); @@ -3571,13 +3577,5 @@ mlx5_ib_odp_cleanup(); } -static void -mlx5_ib_show_version(void __unused *arg) -{ - - printf("%s", mlx5_version); -} -SYSINIT(mlx5_ib_show_version, SI_SUB_DRIVERS, SI_ORDER_ANY, mlx5_ib_show_version, NULL); - module_init_order(mlx5_ib_init, SI_ORDER_SEVENTH); module_exit_order(mlx5_ib_cleanup, SI_ORDER_SEVENTH);