Skip to content

Commit 3c4d790

Browse files
committed
Merge branch 'net-lan966x-flower-validate-control-flags'
Asbjørn Sloth Tønnesen says: ==================== net: lan966x: flower: validate control flags This series adds flower control flags validation to the lan966x driver, and changes it from assuming that it handles all control flags, to instead reject rules if they have masked any unknown/unsupported control flags. v1: https://lore.kernel.org/netdev/20240423102720.228728-1-ast@fiberby.net/ ==================== Link: https://lore.kernel.org/r/20240424125347.461995-1-ast@fiberby.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents df65494 + 8c65e27 commit 3c4d790

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ static bool lan966x_tc_is_known_etype(struct vcap_tc_flower_parse_usage *st,
4545
static int
4646
lan966x_tc_flower_handler_control_usage(struct vcap_tc_flower_parse_usage *st)
4747
{
48+
struct netlink_ext_ack *extack = st->fco->common.extack;
4849
struct flow_match_control match;
4950
int err = 0;
5051

@@ -59,7 +60,7 @@ lan966x_tc_flower_handler_control_usage(struct vcap_tc_flower_parse_usage *st)
5960
VCAP_KF_L3_FRAGMENT,
6061
VCAP_BIT_0);
6162
if (err)
62-
goto out;
63+
goto bad_frag_out;
6364
}
6465

6566
if (match.mask->flags & FLOW_DIS_FIRST_FRAG) {
@@ -72,15 +73,20 @@ lan966x_tc_flower_handler_control_usage(struct vcap_tc_flower_parse_usage *st)
7273
VCAP_KF_L3_FRAG_OFS_GT0,
7374
VCAP_BIT_1);
7475
if (err)
75-
goto out;
76+
goto bad_frag_out;
7677
}
7778

79+
if (!flow_rule_is_supp_control_flags(FLOW_DIS_IS_FRAGMENT |
80+
FLOW_DIS_FIRST_FRAG,
81+
match.mask->flags, extack))
82+
return -EOPNOTSUPP;
83+
7884
st->used_keys |= BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL);
7985

8086
return err;
8187

82-
out:
83-
NL_SET_ERR_MSG_MOD(st->fco->common.extack, "ip_frag parse error");
88+
bad_frag_out:
89+
NL_SET_ERR_MSG_MOD(extack, "ip_frag parse error");
8490
return err;
8591
}
8692

0 commit comments

Comments
 (0)