RDMA/mlx5: Fix drop packet rule in egress table
[ Upstream commit c73700806d4e430d182c2be069d230076818a99a ] Initial drop action support missed that drop action can be added to egress flow tables as well. Add the missing support. This requires making sure that dest_type isn't set to PORT which in turn exposes a possibility of passing dst while indicating number of dsts as zero. Explicitly check for number of dsts and pass the appropriate pointer. Fixes: f29de9eee782 ("RDMA/mlx5: Add support for drop action in DV steering") Link: https://lore.kernel.org/r/20210318135123.680759-1-leon@kernel.org Reviewed-by: Mark Bloch <markb@nvidia.com> Signed-off-by: Maor Gottlieb <maorg@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4ff081701b
commit
78f537c005
@ -1528,8 +1528,8 @@ static struct mlx5_ib_flow_handler *raw_fs_rule_add(
|
||||
dst_num++;
|
||||
}
|
||||
|
||||
handler = _create_raw_flow_rule(dev, ft_prio, dst, fs_matcher,
|
||||
flow_context, flow_act,
|
||||
handler = _create_raw_flow_rule(dev, ft_prio, dst_num ? dst : NULL,
|
||||
fs_matcher, flow_context, flow_act,
|
||||
cmd_in, inlen, dst_num);
|
||||
|
||||
if (IS_ERR(handler)) {
|
||||
@ -1885,8 +1885,9 @@ static int get_dests(struct uverbs_attr_bundle *attrs,
|
||||
else
|
||||
*dest_id = mqp->raw_packet_qp.rq.tirn;
|
||||
*dest_type = MLX5_FLOW_DESTINATION_TYPE_TIR;
|
||||
} else if (fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_EGRESS ||
|
||||
fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_RDMA_TX) {
|
||||
} else if ((fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_EGRESS ||
|
||||
fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_RDMA_TX) &&
|
||||
!(*flags & MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP)) {
|
||||
*dest_type = MLX5_FLOW_DESTINATION_TYPE_PORT;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user