]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mlxsw: core: Add bus argument to environment init API
authorVadim Pasternak <vadimp@nvidia.com>
Tue, 19 Apr 2022 14:54:27 +0000 (17:54 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Apr 2022 14:03:21 +0000 (15:03 +0100)
Pass bus argument to mlxsw_env_init(). The purpose is to get access to
device handle, which is to be provided to error message in case of line
card activation failure.

Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/core.c
drivers/net/ethernet/mellanox/mlxsw/core_env.c
drivers/net/ethernet/mellanox/mlxsw/core_env.h

index 0e92dd91eca4dfdec58b25edf37ac3ee66a792a3..fc52832241b36bee37d7986233ba916101f602fd 100644 (file)
@@ -2175,7 +2175,7 @@ __mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
        if (err)
                goto err_thermal_init;
 
-       err = mlxsw_env_init(mlxsw_core, &mlxsw_core->env);
+       err = mlxsw_env_init(mlxsw_core, mlxsw_bus_info, &mlxsw_core->env);
        if (err)
                goto err_env_init;
 
index b3b8a9015cd60300bd59840c4f70313c4f4d6867..abb54177485cee1ccc1ffc876c98be4a21b7c4ed 100644 (file)
@@ -28,6 +28,7 @@ struct mlxsw_env_line_card {
 
 struct mlxsw_env {
        struct mlxsw_core *core;
+       const struct mlxsw_bus_info *bus_info;
        u8 max_module_count; /* Maximum number of modules per-slot. */
        u8 num_of_slots; /* Including the main board. */
        struct mutex line_cards_lock; /* Protects line cards. */
@@ -1194,7 +1195,9 @@ mlxsw_env_module_type_set(struct mlxsw_core *mlxsw_core, u8 slot_index)
        return 0;
 }
 
-int mlxsw_env_init(struct mlxsw_core *mlxsw_core, struct mlxsw_env **p_env)
+int mlxsw_env_init(struct mlxsw_core *mlxsw_core,
+                  const struct mlxsw_bus_info *bus_info,
+                  struct mlxsw_env **p_env)
 {
        u8 module_count, num_of_slots, max_module_count;
        char mgpir_pl[MLXSW_REG_MGPIR_LEN];
@@ -1221,6 +1224,7 @@ int mlxsw_env_init(struct mlxsw_core *mlxsw_core, struct mlxsw_env **p_env)
                return -ENOMEM;
 
        env->core = mlxsw_core;
+       env->bus_info = bus_info;
        env->num_of_slots = num_of_slots + 1;
        env->max_module_count = max_module_count;
        err = mlxsw_env_line_cards_alloc(env);
index 6b494c64a4d7b054f5a411477998caeedf86b666..a197e3ae069c04c88eaca8aca9e2882e30f76d70 100644 (file)
@@ -60,7 +60,9 @@ int mlxsw_env_module_port_up(struct mlxsw_core *mlxsw_core, u8 slot_index,
 void mlxsw_env_module_port_down(struct mlxsw_core *mlxsw_core, u8 slot_index,
                                u8 module);
 
-int mlxsw_env_init(struct mlxsw_core *core, struct mlxsw_env **p_env);
+int mlxsw_env_init(struct mlxsw_core *core,
+                  const struct mlxsw_bus_info *bus_info,
+                  struct mlxsw_env **p_env);
 void mlxsw_env_fini(struct mlxsw_env *env);
 
 #endif