@@ -287,10 +287,9 @@ static void esw_put_dest_tables_loop(struct mlx5_eswitch *esw, struct mlx5_flow_
287
287
for (i = from ; i < to ; i ++ )
288
288
if (esw_attr -> dests [i ].flags & MLX5_ESW_DEST_CHAIN_WITH_SRC_PORT_CHANGE )
289
289
mlx5_chains_put_table (chains , 0 , 1 , 0 );
290
- else if (mlx5_esw_indir_table_needed (esw , attr , esw_attr -> dests [i ].rep -> vport ,
290
+ else if (mlx5_esw_indir_table_needed (esw , attr , esw_attr -> dests [i ].vport ,
291
291
esw_attr -> dests [i ].mdev ))
292
- mlx5_esw_indir_table_put (esw , esw_attr -> dests [i ].rep -> vport ,
293
- false);
292
+ mlx5_esw_indir_table_put (esw , esw_attr -> dests [i ].vport , false);
294
293
}
295
294
296
295
static bool
@@ -358,8 +357,8 @@ esw_is_indir_table(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr)
358
357
* this criteria.
359
358
*/
360
359
for (i = esw_attr -> split_count ; i < esw_attr -> out_count ; i ++ ) {
361
- if (esw_attr -> dests [i ].rep &&
362
- mlx5_esw_indir_table_needed (esw , attr , esw_attr -> dests [i ].rep -> vport ,
360
+ if (esw_attr -> dests [i ].vport_valid &&
361
+ mlx5_esw_indir_table_needed (esw , attr , esw_attr -> dests [i ].vport ,
363
362
esw_attr -> dests [i ].mdev )) {
364
363
result = true;
365
364
} else {
@@ -388,7 +387,7 @@ esw_setup_indir_table(struct mlx5_flow_destination *dest,
388
387
dest [* i ].type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE ;
389
388
390
389
dest [* i ].ft = mlx5_esw_indir_table_get (esw , attr ,
391
- esw_attr -> dests [j ].rep -> vport , false);
390
+ esw_attr -> dests [j ].vport , false);
392
391
if (IS_ERR (dest [* i ].ft )) {
393
392
err = PTR_ERR (dest [* i ].ft );
394
393
goto err_indir_tbl_get ;
@@ -432,11 +431,11 @@ static bool esw_setup_uplink_fwd_ipsec_needed(struct mlx5_eswitch *esw,
432
431
int attr_idx )
433
432
{
434
433
if (esw -> offloads .ft_ipsec_tx_pol &&
435
- esw_attr -> dests [attr_idx ].rep &&
436
- esw_attr -> dests [attr_idx ].rep -> vport == MLX5_VPORT_UPLINK &&
434
+ esw_attr -> dests [attr_idx ].vport_valid &&
435
+ esw_attr -> dests [attr_idx ].vport == MLX5_VPORT_UPLINK &&
437
436
/* To be aligned with software, encryption is needed only for tunnel device */
438
437
(esw_attr -> dests [attr_idx ].flags & MLX5_ESW_DEST_ENCAP_VALID ) &&
439
- esw_attr -> dests [attr_idx ].rep != esw_attr -> in_rep &&
438
+ esw_attr -> dests [attr_idx ].vport != esw_attr -> in_rep -> vport &&
440
439
esw_same_vhca_id (esw_attr -> dests [attr_idx ].mdev , esw -> dev ))
441
440
return true;
442
441
@@ -469,7 +468,7 @@ esw_setup_dest_fwd_vport(struct mlx5_flow_destination *dest, struct mlx5_flow_ac
469
468
int attr_idx , int dest_idx , bool pkt_reformat )
470
469
{
471
470
dest [dest_idx ].type = MLX5_FLOW_DESTINATION_TYPE_VPORT ;
472
- dest [dest_idx ].vport .num = esw_attr -> dests [attr_idx ].rep -> vport ;
471
+ dest [dest_idx ].vport .num = esw_attr -> dests [attr_idx ].vport ;
473
472
if (MLX5_CAP_ESW (esw -> dev , merged_eswitch )) {
474
473
dest [dest_idx ].vport .vhca_id =
475
474
MLX5_CAP_GEN (esw_attr -> dests [attr_idx ].mdev , vhca_id );
0 commit comments