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 = {