cls_flower: Add extack support for flags key
authorGuillaume Nault <gnault@redhat.com>
Mon, 23 Mar 2020 20:48:53 +0000 (21:48 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Mar 2020 02:52:31 +0000 (19:52 -0700)
Pass extack down to fl_set_key_flags() and set message on error.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_flower.c

index 5811dd9..9b6acd7 100644 (file)
@@ -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,
-                           u32 *flags_key, u32 *flags_mask)
+static int fl_set_key_flags(struct nlattr **tb, u32 *flags_key,
+                           u32 *flags_mask, struct netlink_ext_ack *extack)
 {
        u32 key, mask;
 
        /* 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;
+       }
 
        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]));
@@ -1474,7 +1476,8 @@ static int fl_set_key(struct net *net, struct nlattr **tb,
                return ret;
 
        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;
 }