genetlink: inline old iteration helpers
authorJakub Kicinski <kuba@kernel.org>
Fri, 4 Nov 2022 19:13:41 +0000 (12:13 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Nov 2022 12:30:16 +0000 (12:30 +0000)
All dumpers use the iterators now, inline the cmd by index
stuff into iterator code.

Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlink/genetlink.c

index 4b8c65d..0a4f147 100644 (file)
@@ -118,11 +118,6 @@ static const struct genl_family *genl_family_find_byname(char *name)
        return NULL;
 }
 
-static int genl_get_cmd_cnt(const struct genl_family *family)
-{
-       return family->n_ops + family->n_small_ops;
-}
-
 static void genl_op_from_full(const struct genl_family *family,
                              unsigned int i, struct genl_ops *op)
 {
@@ -240,18 +235,6 @@ genl_get_cmd(u32 cmd, u8 flags, const struct genl_family *family,
        return genl_cmd_full_to_split(op, family, &full, flags);
 }
 
-static void genl_get_cmd_by_index(unsigned int i,
-                                 const struct genl_family *family,
-                                 struct genl_ops *op)
-{
-       if (i < family->n_ops)
-               genl_op_from_full(family, i, op);
-       else if (i < family->n_ops + family->n_small_ops)
-               genl_op_from_small(family, i - family->n_ops, op);
-       else
-               WARN_ON_ONCE(1);
-}
-
 struct genl_op_iter {
        const struct genl_family *family;
        struct genl_split_ops doit;
@@ -269,22 +252,25 @@ genl_op_iter_init(const struct genl_family *family, struct genl_op_iter *iter)
 
        iter->flags = 0;
 
-       return genl_get_cmd_cnt(iter->family);
+       return iter->family->n_ops + iter->family->n_small_ops;
 }
 
 static bool genl_op_iter_next(struct genl_op_iter *iter)
 {
+       const struct genl_family *family = iter->family;
        struct genl_ops op;
 
-       if (iter->i >= genl_get_cmd_cnt(iter->family))
+       if (iter->i < family->n_ops)
+               genl_op_from_full(family, iter->i, &op);
+       else if (iter->i < family->n_ops + family->n_small_ops)
+               genl_op_from_small(family, iter->i - family->n_ops, &op);
+       else
                return false;
 
-       genl_get_cmd_by_index(iter->i, iter->family, &op);
        iter->i++;
 
-       genl_cmd_full_to_split(&iter->doit, iter->family, &op, GENL_CMD_CAP_DO);
-       genl_cmd_full_to_split(&iter->dumpit, iter->family,
-                              &op, GENL_CMD_CAP_DUMP);
+       genl_cmd_full_to_split(&iter->doit, family, &op, GENL_CMD_CAP_DO);
+       genl_cmd_full_to_split(&iter->dumpit, family, &op, GENL_CMD_CAP_DUMP);
 
        iter->cmd = iter->doit.cmd | iter->dumpit.cmd;
        iter->flags = iter->doit.flags | iter->dumpit.flags;