mlxsw: spectrum: Set basic trap groups from an array
authorJiri Pirko <jiri@nvidia.com>
Thu, 27 Jan 2022 09:02:20 +0000 (11:02 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 28 Jan 2022 03:19:57 +0000 (19:19 -0800)
Instead of calling the same code four times, do it in a loop over array
which contains trap grups to be set.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlxsw/spectrum.c

index aa411dec62f003aa0a0fd505844a2207bf02061f..4c6497753912a20d2e6599db95512909177eff42 100644 (file)
@@ -2528,40 +2528,29 @@ static void mlxsw_sp_lag_fini(struct mlxsw_sp *mlxsw_sp)
        kfree(mlxsw_sp->lags);
 }
 
+static const u8 mlxsw_sp_basic_trap_groups[] = {
+       MLXSW_REG_HTGT_TRAP_GROUP_EMAD,
+       MLXSW_REG_HTGT_TRAP_GROUP_MFDE,
+       MLXSW_REG_HTGT_TRAP_GROUP_MTWE,
+       MLXSW_REG_HTGT_TRAP_GROUP_PMPE,
+};
+
 static int mlxsw_sp_basic_trap_groups_set(struct mlxsw_core *mlxsw_core)
 {
        char htgt_pl[MLXSW_REG_HTGT_LEN];
        int err;
+       int i;
 
-       mlxsw_reg_htgt_pack(htgt_pl, MLXSW_REG_HTGT_TRAP_GROUP_EMAD,
-                           MLXSW_REG_HTGT_INVALID_POLICER,
-                           MLXSW_REG_HTGT_DEFAULT_PRIORITY,
-                           MLXSW_REG_HTGT_DEFAULT_TC);
-       err =  mlxsw_reg_write(mlxsw_core, MLXSW_REG(htgt), htgt_pl);
-       if (err)
-               return err;
-
-       mlxsw_reg_htgt_pack(htgt_pl, MLXSW_REG_HTGT_TRAP_GROUP_MFDE,
-                           MLXSW_REG_HTGT_INVALID_POLICER,
-                           MLXSW_REG_HTGT_DEFAULT_PRIORITY,
-                           MLXSW_REG_HTGT_DEFAULT_TC);
-       err = mlxsw_reg_write(mlxsw_core, MLXSW_REG(htgt), htgt_pl);
-       if (err)
-               return err;
-
-       mlxsw_reg_htgt_pack(htgt_pl, MLXSW_REG_HTGT_TRAP_GROUP_MTWE,
-                           MLXSW_REG_HTGT_INVALID_POLICER,
-                           MLXSW_REG_HTGT_DEFAULT_PRIORITY,
-                           MLXSW_REG_HTGT_DEFAULT_TC);
-       err = mlxsw_reg_write(mlxsw_core, MLXSW_REG(htgt), htgt_pl);
-       if (err)
-               return err;
-
-       mlxsw_reg_htgt_pack(htgt_pl, MLXSW_REG_HTGT_TRAP_GROUP_PMPE,
-                           MLXSW_REG_HTGT_INVALID_POLICER,
-                           MLXSW_REG_HTGT_DEFAULT_PRIORITY,
-                           MLXSW_REG_HTGT_DEFAULT_TC);
-       return mlxsw_reg_write(mlxsw_core, MLXSW_REG(htgt), htgt_pl);
+       for (i = 0; i < ARRAY_SIZE(mlxsw_sp_basic_trap_groups); i++) {
+               mlxsw_reg_htgt_pack(htgt_pl, mlxsw_sp_basic_trap_groups[i],
+                                   MLXSW_REG_HTGT_INVALID_POLICER,
+                                   MLXSW_REG_HTGT_DEFAULT_PRIORITY,
+                                   MLXSW_REG_HTGT_DEFAULT_TC);
+               err = mlxsw_reg_write(mlxsw_core, MLXSW_REG(htgt), htgt_pl);
+               if (err)
+                       return err;
+       }
+       return 0;
 }
 
 static const struct mlxsw_sp_ptp_ops mlxsw_sp1_ptp_ops = {