@@ -444,6 +444,9 @@ mlx5e_tc_add_flow_meter(struct mlx5e_priv *priv,
444
444
struct mlx5e_flow_meter_handle * meter ;
445
445
enum mlx5e_post_meter_type type ;
446
446
447
+ if (IS_ERR (post_act ))
448
+ return PTR_ERR (post_act );
449
+
447
450
meter = mlx5e_tc_meter_replace (priv -> mdev , & attr -> meter_attr .params );
448
451
if (IS_ERR (meter )) {
449
452
mlx5_core_err (priv -> mdev , "Failed to get flow meter\n" );
@@ -3738,6 +3741,20 @@ alloc_flow_post_acts(struct mlx5e_tc_flow *flow, struct netlink_ext_ack *extack)
3738
3741
return err ;
3739
3742
}
3740
3743
3744
+ static int
3745
+ set_branch_dest_ft (struct mlx5e_priv * priv , struct mlx5_flow_attr * attr )
3746
+ {
3747
+ struct mlx5e_post_act * post_act = get_post_action (priv );
3748
+
3749
+ if (IS_ERR (post_act ))
3750
+ return PTR_ERR (post_act );
3751
+
3752
+ attr -> action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST ;
3753
+ attr -> dest_ft = mlx5e_tc_post_act_get_ft (post_act );
3754
+
3755
+ return 0 ;
3756
+ }
3757
+
3741
3758
static int
3742
3759
alloc_branch_attr (struct mlx5e_tc_flow * flow ,
3743
3760
struct mlx5e_tc_act_branch_ctrl * cond ,
@@ -3761,8 +3778,8 @@ alloc_branch_attr(struct mlx5e_tc_flow *flow,
3761
3778
break ;
3762
3779
case FLOW_ACTION_ACCEPT :
3763
3780
case FLOW_ACTION_PIPE :
3764
- attr -> action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST ;
3765
- attr -> dest_ft = mlx5e_tc_post_act_get_ft ( get_post_action ( flow -> priv )) ;
3781
+ if ( set_branch_dest_ft ( flow -> priv , attr ))
3782
+ goto out_err ;
3766
3783
break ;
3767
3784
case FLOW_ACTION_JUMP :
3768
3785
if (* jump_count ) {
@@ -3771,8 +3788,8 @@ alloc_branch_attr(struct mlx5e_tc_flow *flow,
3771
3788
goto out_err ;
3772
3789
}
3773
3790
* jump_count = cond -> extval ;
3774
- attr -> action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST ;
3775
- attr -> dest_ft = mlx5e_tc_post_act_get_ft ( get_post_action ( flow -> priv )) ;
3791
+ if ( set_branch_dest_ft ( flow -> priv , attr ))
3792
+ goto out_err ;
3776
3793
break ;
3777
3794
default :
3778
3795
err = - EOPNOTSUPP ;
0 commit comments