diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx5/mlx5_ib.h')
| -rw-r--r-- | drivers/infiniband/hw/mlx5/mlx5_ib.h | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h index efa4dc6e7dee..2dfa6f49a6f4 100644 --- a/drivers/infiniband/hw/mlx5/mlx5_ib.h +++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h @@ -237,8 +237,19 @@ enum {  #define MLX5_IB_NUM_SNIFFER_FTS		2  #define MLX5_IB_NUM_EGRESS_FTS		1  #define MLX5_IB_NUM_FDB_FTS		MLX5_BY_PASS_NUM_REGULAR_PRIOS + +struct mlx5_ib_anchor { +	struct mlx5_flow_table *ft; +	struct mlx5_flow_group *fg_goto_table; +	struct mlx5_flow_group *fg_drop; +	struct mlx5_flow_handle *rule_goto_table; +	struct mlx5_flow_handle *rule_drop; +	unsigned int rule_goto_table_ref; +}; +  struct mlx5_ib_flow_prio {  	struct mlx5_flow_table		*flow_table; +	struct mlx5_ib_anchor		anchor;  	unsigned int			refcount;  }; @@ -1587,6 +1598,9 @@ static inline bool mlx5_ib_lag_should_assign_affinity(struct mlx5_ib_dev *dev)  	    MLX5_CAP_PORT_SELECTION(dev->mdev, port_select_flow_table_bypass))  		return 0; +	if (mlx5_lag_is_lacp_owner(dev->mdev) && !dev->lag_active) +		return 0; +  	return dev->lag_active ||  		(MLX5_CAP_GEN(dev->mdev, num_lag_ports) > 1 &&  		 MLX5_CAP_GEN(dev->mdev, lag_tx_port_affinity));  |