diff options
author | Asbjørn Sloth Tønnesen <ast@fiberby.net> | 2024-04-17 17:43:58 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-04-19 03:05:38 +0300 |
commit | 435f9fcc0e44b419cfd7d5742ca6f0be62d10dbb (patch) | |
tree | 772d9e7f79c34e1a0de1a13078b7d05c5cac0e25 /drivers/net/ethernet/mscc/ocelot_flower.c | |
parent | bb534830a74f54037df923e15254e8c885dce35a (diff) | |
download | linux-435f9fcc0e44b419cfd7d5742ca6f0be62d10dbb.tar.xz |
net: mscc: ocelot: flower: validate control flags
This driver currently doesn't support any control flags.
Use flow_rule_match_has_control_flags() to check for control flags,
such as can be set through `tc flower ... ip_flags frag`.
In case any control flags are masked, flow_rule_match_has_control_flags()
sets a NL extended error message, and we return -EOPNOTSUPP.
Only compile-tested.
Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
Link: https://lore.kernel.org/r/20240417144359.104225-1-ast@fiberby.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/mscc/ocelot_flower.c')
-rw-r--r-- | drivers/net/ethernet/mscc/ocelot_flower.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c index 33b438c6aec5..a057ec3dab97 100644 --- a/drivers/net/ethernet/mscc/ocelot_flower.c +++ b/drivers/net/ethernet/mscc/ocelot_flower.c @@ -609,11 +609,8 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress, return ret; } - if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_CONTROL)) { - struct flow_match_control match; - - flow_rule_match_control(rule, &match); - } + if (flow_rule_match_has_control_flags(rule, extack)) + return -EOPNOTSUPP; if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_VLAN)) { struct flow_match_vlan match; |