genetlink: use attrs from struct genl_info
authorJakub Kicinski <kuba@kernel.org>
Mon, 14 Aug 2023 21:47:18 +0000 (14:47 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Aug 2023 22:00:45 +0000 (15:00 -0700)
Since dumps carry struct genl_info now, use the attrs pointer
from genl_info and remove the one in struct genl_dumpit_info.

Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://lore.kernel.org/r/20230814214723.2924989-6-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
14 files changed:
drivers/net/wireguard/netlink.c
include/net/genetlink.h
net/devlink/health.c
net/devlink/leftover.c
net/devlink/netlink.c
net/ethtool/netlink.c
net/ethtool/tunnels.c
net/ieee802154/nl802154.c
net/netlink/genetlink.c
net/nfc/netlink.c
net/tipc/netlink_compat.c
net/tipc/node.c
net/tipc/socket.c
net/tipc/udp_media.c

index 6d1bd9f52d02a07498ce5217348de1ee8f4bc03d..dc09b75a32485c2f7e57700a4e451d19a69841b0 100644 (file)
@@ -200,7 +200,7 @@ static int wg_get_device_start(struct netlink_callback *cb)
 {
        struct wg_device *wg;
 
-       wg = lookup_interface(genl_dumpit_info(cb)->attrs, cb->skb);
+       wg = lookup_interface(genl_info_dump(cb)->attrs, cb->skb);
        if (IS_ERR(wg))
                return PTR_ERR(wg);
        DUMP_CTX(cb)->wg = wg;
index 86c8eaaa3a4316bd9f686ada3bc288fa0f7c66f4..a8a15b9c22c8ac8875d7669509c750fdf50a90eb 100644 (file)
@@ -255,7 +255,6 @@ struct genl_split_ops {
 struct genl_dumpit_info {
        const struct genl_family *family;
        struct genl_split_ops op;
-       struct nlattr **attrs;
        struct genl_info info;
 };
 
index a85bdec348011f28530925b545003b297b2cefb5..638cad8d5c6542bcb58aa1184f3004374f2bd3db 100644 (file)
@@ -390,7 +390,7 @@ static int devlink_nl_health_reporter_get_dump_one(struct sk_buff *msg,
                                                   int flags)
 {
        struct devlink_nl_dump_state *state = devlink_dump_state(cb);
-       const struct genl_dumpit_info *info = genl_dumpit_info(cb);
+       const struct genl_info *info = genl_info_dump(cb);
        struct devlink_health_reporter *reporter;
        unsigned long port_index_end = ULONG_MAX;
        struct nlattr **attrs = info->attrs;
@@ -1264,7 +1264,7 @@ out:
 static struct devlink_health_reporter *
 devlink_health_reporter_get_from_cb(struct netlink_callback *cb)
 {
-       const struct genl_dumpit_info *info = genl_dumpit_info(cb);
+       const struct genl_info *info = genl_info_dump(cb);
        struct devlink_health_reporter *reporter;
        struct nlattr **attrs = info->attrs;
        struct devlink *devlink;
index 3883a90d32bb26ca41fe1a14c5bd74f6dfcb4cdc..72ba8a716525557195801ae6f1d18e7f854d671a 100644 (file)
@@ -5201,7 +5201,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
        struct devlink_nl_dump_state *state = devlink_dump_state(cb);
        struct nlattr *chunks_attr, *region_attr, *snapshot_attr;
        u64 ret_offset, start_offset, end_offset = U64_MAX;
-       struct nlattr **attrs = info->attrs;
+       struct nlattr **attrs = info->info.attrs;
        struct devlink_port *port = NULL;
        devlink_chunk_fill_t *region_cb;
        struct devlink_region *region;
@@ -5224,8 +5224,8 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
                goto out_unlock;
        }
 
-       if (info->attrs[DEVLINK_ATTR_PORT_INDEX]) {
-               index = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_INDEX]);
+       if (attrs[DEVLINK_ATTR_PORT_INDEX]) {
+               index = nla_get_u32(attrs[DEVLINK_ATTR_PORT_INDEX]);
 
                port = devlink_port_get_by_index(devlink, index);
                if (!port) {
index a9b43b0c5959868a460de493e25234890ade4116..72a5005a64cd7cd3984729d8f7541c54ff647428 100644 (file)
@@ -228,7 +228,7 @@ static int devlink_nl_inst_iter_dumpit(struct sk_buff *msg,
 int devlink_nl_dumpit(struct sk_buff *msg, struct netlink_callback *cb,
                      devlink_nl_dump_one_func_t *dump_one)
 {
-       const struct genl_dumpit_info *info = genl_dumpit_info(cb);
+       const struct genl_info *info = genl_info_dump(cb);
        struct nlattr **attrs = info->attrs;
        int flags = NLM_F_MULTI;
 
index ae344f1b0bbd1b0592e2756da90bdd3fff53a5f7..9fc7c41f478635b7863c9c7c34147037f68318bb 100644 (file)
@@ -538,7 +538,8 @@ static int ethnl_default_start(struct netlink_callback *cb)
                goto free_req_info;
        }
 
-       ret = ethnl_default_parse(req_info, info->attrs, sock_net(cb->skb->sk),
+       ret = ethnl_default_parse(req_info, info->info.attrs,
+                                 sock_net(cb->skb->sk),
                                  ops, cb->extack, false);
        if (req_info->dev) {
                /* We ignore device specification in dump requests but as the
index 05f752557b5e02f144fe33d632499214e77fb72d..b4ce47dd2aa6015dc1f64172abc7631799bab666 100644 (file)
@@ -219,7 +219,7 @@ int ethnl_tunnel_info_start(struct netlink_callback *cb)
 {
        const struct genl_dumpit_info *info = genl_dumpit_info(cb);
        struct ethnl_tunnel_info_dump_ctx *ctx = (void *)cb->ctx;
-       struct nlattr **tb = info->attrs;
+       struct nlattr **tb = info->info.attrs;
        int ret;
 
        BUILD_BUG_ON(sizeof(*ctx) > sizeof(cb->ctx));
index d610c1886160cf88967ea552f4a7ffc5c5efe694..1a265a42130863361fa94079ce30bd85ca99003f 100644 (file)
@@ -262,7 +262,7 @@ nl802154_prepare_wpan_dev_dump(struct sk_buff *skb,
 
        if (!cb->args[0]) {
                *wpan_dev = __cfg802154_wpan_dev_from_attrs(sock_net(skb->sk),
-                                                           info->attrs);
+                                                           info->info.attrs);
                if (IS_ERR(*wpan_dev)) {
                        err = PTR_ERR(*wpan_dev);
                        goto out_unlock;
@@ -570,7 +570,7 @@ static int nl802154_dump_wpan_phy_parse(struct sk_buff *skb,
                                        struct nl802154_dump_wpan_phy_state *state)
 {
        const struct genl_dumpit_info *info = genl_dumpit_info(cb);
-       struct nlattr **tb = info->attrs;
+       struct nlattr **tb = info->info.attrs;
 
        if (tb[NL802154_ATTR_WPAN_PHY])
                state->filter_wpan_phy = nla_get_u32(tb[NL802154_ATTR_WPAN_PHY]);
index 82ad26970b9bba91846b073995f8ead3abf461c9..d47879d5a74ca3f333baf38fd12cfcdb9faff247 100644 (file)
@@ -846,7 +846,6 @@ static int genl_start(struct netlink_callback *cb)
        }
        info->family = ctx->family;
        info->op = *ops;
-       info->attrs = attrs;
        info->info.snd_seq      = cb->nlh->nlmsg_seq;
        info->info.snd_portid   = NETLINK_CB(cb->skb).portid;
        info->info.nlhdr        = cb->nlh;
@@ -864,7 +863,7 @@ static int genl_start(struct netlink_callback *cb)
        }
 
        if (rc) {
-               genl_family_rcv_msg_attrs_free(info->attrs);
+               genl_family_rcv_msg_attrs_free(info->info.attrs);
                genl_dumpit_info_free(info);
                cb->data = NULL;
        }
@@ -898,7 +897,7 @@ static int genl_done(struct netlink_callback *cb)
                rc = ops->done(cb);
                genl_op_unlock(info->family);
        }
-       genl_family_rcv_msg_attrs_free(info->attrs);
+       genl_family_rcv_msg_attrs_free(info->info.attrs);
        genl_dumpit_info_free(info);
        return rc;
 }
@@ -1387,7 +1386,7 @@ static int ctrl_dumppolicy_start(struct netlink_callback *cb)
 {
        const struct genl_dumpit_info *info = genl_dumpit_info(cb);
        struct ctrl_dump_policy_ctx *ctx = (void *)cb->ctx;
-       struct nlattr **tb = info->attrs;
+       struct nlattr **tb = info->info.attrs;
        const struct genl_family *rt;
        struct genl_op_iter i;
        int err;
index e9ac6a6f934e7784c431e60043b1294fd471d8d5..aa1dbf654c3e5f48062812ebc51e0077184bb2ee 100644 (file)
@@ -110,10 +110,10 @@ static struct nfc_dev *__get_device_from_cb(struct netlink_callback *cb)
        struct nfc_dev *dev;
        u32 idx;
 
-       if (!info->attrs[NFC_ATTR_DEVICE_INDEX])
+       if (!info->info.attrs[NFC_ATTR_DEVICE_INDEX])
                return ERR_PTR(-EINVAL);
 
-       idx = nla_get_u32(info->attrs[NFC_ATTR_DEVICE_INDEX]);
+       idx = nla_get_u32(info->info.attrs[NFC_ATTR_DEVICE_INDEX]);
 
        dev = nfc_get_device(idx);
        if (!dev)
index 299cd6754f14c49d93793f7c114351b04777bb90..5bc076f2fa74a295d5236ffd359f8d1b11f6ea53 100644 (file)
@@ -208,7 +208,7 @@ static int __tipc_nl_compat_dumpit(struct tipc_nl_compat_cmd_dump *cmd,
                goto err_out;
        }
 
-       info.attrs = attrbuf;
+       info.info.attrs = attrbuf;
 
        if (nlmsg_len(cb.nlh) > 0) {
                err = nlmsg_parse_deprecated(cb.nlh, GENL_HDRLEN, attrbuf,
index a9c5b6594889b4b1e48e899068f2ba23c721df39..3105abe97bb9cc64f6f10e9ae3cb670fc0fbcb6e 100644 (file)
@@ -2662,7 +2662,7 @@ static int __tipc_nl_add_node_links(struct net *net, struct tipc_nl_msg *msg,
 int tipc_nl_node_dump_link(struct sk_buff *skb, struct netlink_callback *cb)
 {
        struct net *net = sock_net(skb->sk);
-       struct nlattr **attrs = genl_dumpit_info(cb)->attrs;
+       struct nlattr **attrs = genl_dumpit_info(cb)->info.attrs;
        struct nlattr *link[TIPC_NLA_LINK_MAX + 1];
        struct tipc_net *tn = net_generic(net, tipc_net_id);
        struct tipc_node *node;
@@ -2870,7 +2870,7 @@ int tipc_nl_node_dump_monitor_peer(struct sk_buff *skb,
        int err;
 
        if (!prev_node) {
-               struct nlattr **attrs = genl_dumpit_info(cb)->attrs;
+               struct nlattr **attrs = genl_dumpit_info(cb)->info.attrs;
                struct nlattr *mon[TIPC_NLA_MON_MAX + 1];
 
                if (!attrs[TIPC_NLA_MON])
index ef8e5139a87377732a7c5021a00b15f7504370b3..bb1118d02f9532f2f7f32e3de8c1275ad935ca49 100644 (file)
@@ -3791,7 +3791,7 @@ int tipc_nl_publ_dump(struct sk_buff *skb, struct netlink_callback *cb)
        struct tipc_sock *tsk;
 
        if (!tsk_portid) {
-               struct nlattr **attrs = genl_dumpit_info(cb)->attrs;
+               struct nlattr **attrs = genl_dumpit_info(cb)->info.attrs;
                struct nlattr *sock[TIPC_NLA_SOCK_MAX + 1];
 
                if (!attrs[TIPC_NLA_SOCK])
index 926232557e77ce39b75643759599b02dffff782c..f892b0903dbaf2c482dee04742a8714769f8a0d1 100644 (file)
@@ -465,7 +465,7 @@ int tipc_udp_nl_dump_remoteip(struct sk_buff *skb, struct netlink_callback *cb)
        int i;
 
        if (!bid && !skip_cnt) {
-               struct nlattr **attrs = genl_dumpit_info(cb)->attrs;
+               struct nlattr **attrs = genl_dumpit_info(cb)->info.attrs;
                struct net *net = sock_net(skb->sk);
                struct nlattr *battrs[TIPC_NLA_BEARER_MAX + 1];
                char *bname;