]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
net/mlx5e: Verify flow_source cap before using it
authorRoi Dayan <roid@nvidia.com>
Tue, 31 Jan 2023 10:04:30 +0000 (12:04 +0200)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 14 Mar 2023 15:47:53 +0000 (16:47 +0100)
BugLink: https://bugs.launchpad.net/bugs/2011430
[ Upstream commit 1bf8b0dae8dde6f02520a5ea34fdaa3b39342e69 ]

When adding send to vport rule verify flow_source matching is
supported by checking the flow_source cap.

Fixes: d04442540372 ("net/mlx5: E-Switch, set flow source for send to uplink rule")
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Maor Dickman <maord@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c

index c981fa77f43985ba0efba503f6f18737b74bbf2a..f3b74cb67b71c2ada63972fadf979d4fac09b60b 100644 (file)
@@ -1070,7 +1070,8 @@ mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *on_esw,
        dest.vport.flags |= MLX5_FLOW_DEST_VPORT_VHCA_ID;
        flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
 
-       if (rep->vport == MLX5_VPORT_UPLINK)
+       if (MLX5_CAP_ESW_FLOWTABLE(on_esw->dev, flow_source) &&
+           rep->vport == MLX5_VPORT_UPLINK)
                spec->flow_context.flow_source = MLX5_FLOW_CONTEXT_FLOW_SOURCE_LOCAL_VPORT;
 
        flow_rule = mlx5_add_flow_rules(mlx5_eswitch_get_slow_fdb(on_esw),