Commit e304e21a authored by Guillaume Nault's avatar Guillaume Nault Committed by David S. Miller

cls_flower: Add extack support for flags key

Pass extack down to fl_set_key_flags() and set message on error.
Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bd7d4c12
...@@ -856,14 +856,16 @@ static void fl_set_key_flag(u32 flower_key, u32 flower_mask, ...@@ -856,14 +856,16 @@ static void fl_set_key_flag(u32 flower_key, u32 flower_mask,
} }
} }
static int fl_set_key_flags(struct nlattr **tb, static int fl_set_key_flags(struct nlattr **tb, u32 *flags_key,
u32 *flags_key, u32 *flags_mask) u32 *flags_mask, struct netlink_ext_ack *extack)
{ {
u32 key, mask; u32 key, mask;
/* mask is mandatory for flags */ /* mask is mandatory for flags */
if (!tb[TCA_FLOWER_KEY_FLAGS_MASK]) if (!tb[TCA_FLOWER_KEY_FLAGS_MASK]) {
NL_SET_ERR_MSG(extack, "Missing flags mask");
return -EINVAL; return -EINVAL;
}
key = be32_to_cpu(nla_get_u32(tb[TCA_FLOWER_KEY_FLAGS])); key = be32_to_cpu(nla_get_u32(tb[TCA_FLOWER_KEY_FLAGS]));
mask = be32_to_cpu(nla_get_u32(tb[TCA_FLOWER_KEY_FLAGS_MASK])); mask = be32_to_cpu(nla_get_u32(tb[TCA_FLOWER_KEY_FLAGS_MASK]));
...@@ -1474,7 +1476,8 @@ static int fl_set_key(struct net *net, struct nlattr **tb, ...@@ -1474,7 +1476,8 @@ static int fl_set_key(struct net *net, struct nlattr **tb,
return ret; return ret;
if (tb[TCA_FLOWER_KEY_FLAGS]) if (tb[TCA_FLOWER_KEY_FLAGS])
ret = fl_set_key_flags(tb, &key->control.flags, &mask->control.flags); ret = fl_set_key_flags(tb, &key->control.flags,
&mask->control.flags, extack);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment