On 04/03/2021 10:29, Vladimir Oltean wrote: > From: Vladimir Oltean <vladimir.olt...@nxp.com> > > An attempt is made to warn the user about the fact that VCAP IS1 cannot > offload keys matching on destination IP (at least given the current half > key format), but sadly that warning fails miserably in practice, due to > the fact that it operates on an uninitialized "match" variable. We must > first decode the keys from the flow rule. > > Fixes: 75944fda1dfe ("net: mscc: ocelot: offload ingress skbedit and vlan > actions to VCAP IS1") > Reported-by: Colin Ian King <colin.k...@canonical.com> > Signed-off-by: Vladimir Oltean <vladimir.olt...@nxp.com> > --- > drivers/net/ethernet/mscc/ocelot_flower.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c > b/drivers/net/ethernet/mscc/ocelot_flower.c > index c3ac026f6aea..a41b458b1b3e 100644 > --- a/drivers/net/ethernet/mscc/ocelot_flower.c > +++ b/drivers/net/ethernet/mscc/ocelot_flower.c > @@ -540,13 +540,14 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int > port, bool ingress, > return -EOPNOTSUPP; > } > > + flow_rule_match_ipv4_addrs(rule, &match); > + > if (filter->block_id == VCAP_IS1 && *(u32 *)&match.mask->dst) { > NL_SET_ERR_MSG_MOD(extack, > "Key type S1_NORMAL cannot match on > destination IP"); > return -EOPNOTSUPP; > } > > - flow_rule_match_ipv4_addrs(rule, &match); > tmp = &filter->key.ipv4.sip.value.addr[0]; > memcpy(tmp, &match.key->src, 4); > >
Thanks, looks good to me. Reviewed-by: Colin Ian King <colin.k...@canonical.com>