mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
net/mlx5e: Don't match on Geneve options in case option masks are all zero
[ Upstream commit385d40b042] The cited change added offload support for Geneve options without verifying the validity of the options masks, this caused offload of rules with match on Geneve options with class,type and data masks which are zero to fail. Fix by ignoring the match on Geneve options in case option masks are all zero. Fixes:9272e3df30("net/mlx5e: Geneve, Add support for encap/decap flows offload") Signed-off-by: Maor Dickman <maord@nvidia.com> Reviewed-by: Roi Dayan <roid@nvidia.com> Reviewed-by: Oz Shlomo <ozsh@nvidia.com> Reviewed-by: Yevgeny Kliteynik <kliteyn@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d0be25fa4f
commit
61219de464
@@ -227,6 +227,10 @@ static int mlx5e_tc_tun_parse_geneve_options(struct mlx5e_priv *priv,
|
||||
option_key = (struct geneve_opt *)&enc_opts.key->data[0];
|
||||
option_mask = (struct geneve_opt *)&enc_opts.mask->data[0];
|
||||
|
||||
if (option_mask->opt_class == 0 && option_mask->type == 0 &&
|
||||
!memchr_inv(option_mask->opt_data, 0, option_mask->length * 4))
|
||||
return 0;
|
||||
|
||||
if (option_key->length > max_tlv_option_data_len) {
|
||||
NL_SET_ERR_MSG_MOD(extack,
|
||||
"Matching on GENEVE options: unsupported option len");
|
||||
|
||||
Reference in New Issue
Block a user