]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/ncsi/ncsi-netlink.c
Merge tag 'spdx-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx
[linux.git] / net / ncsi / ncsi-netlink.c
index bad17bba8ba786f589212a2575d346850bab6300..8b386d766e7d330256c0e1c7f93ba840d0ad9049 100644 (file)
@@ -1,10 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * Copyright Samuel Mendoza-Jonas, IBM Corporation 2018.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
  */
 
 #include <linux/module.h>
@@ -79,7 +75,7 @@ static int ncsi_write_channel_info(struct sk_buff *skb,
        nla_put_u32(skb, NCSI_CHANNEL_ATTR_VERSION_MINOR, nc->version.alpha2);
        nla_put_string(skb, NCSI_CHANNEL_ATTR_VERSION_STR, nc->version.fw_name);
 
-       vid_nest = nla_nest_start(skb, NCSI_CHANNEL_ATTR_VLAN_LIST);
+       vid_nest = nla_nest_start_noflag(skb, NCSI_CHANNEL_ATTR_VLAN_LIST);
        if (!vid_nest)
                return -ENOMEM;
        ncf = &nc->vlan_filter;
@@ -113,19 +109,19 @@ static int ncsi_write_package_info(struct sk_buff *skb,
        NCSI_FOR_EACH_PACKAGE(ndp, np) {
                if (np->id != id)
                        continue;
-               pnest = nla_nest_start(skb, NCSI_PKG_ATTR);
+               pnest = nla_nest_start_noflag(skb, NCSI_PKG_ATTR);
                if (!pnest)
                        return -ENOMEM;
                nla_put_u32(skb, NCSI_PKG_ATTR_ID, np->id);
                if ((0x1 << np->id) == ndp->package_whitelist)
                        nla_put_flag(skb, NCSI_PKG_ATTR_FORCED);
-               cnest = nla_nest_start(skb, NCSI_PKG_ATTR_CHANNEL_LIST);
+               cnest = nla_nest_start_noflag(skb, NCSI_PKG_ATTR_CHANNEL_LIST);
                if (!cnest) {
                        nla_nest_cancel(skb, pnest);
                        return -ENOMEM;
                }
                NCSI_FOR_EACH_CHANNEL(np, nc) {
-                       nest = nla_nest_start(skb, NCSI_CHANNEL_ATTR);
+                       nest = nla_nest_start_noflag(skb, NCSI_CHANNEL_ATTR);
                        if (!nest) {
                                nla_nest_cancel(skb, cnest);
                                nla_nest_cancel(skb, pnest);
@@ -187,7 +183,7 @@ static int ncsi_pkg_info_nl(struct sk_buff *msg, struct genl_info *info)
 
        package_id = nla_get_u32(info->attrs[NCSI_ATTR_PACKAGE_ID]);
 
-       attr = nla_nest_start(skb, NCSI_ATTR_PACKAGE_LIST);
+       attr = nla_nest_start_noflag(skb, NCSI_ATTR_PACKAGE_LIST);
        if (!attr) {
                kfree_skb(skb);
                return -EMSGSIZE;
@@ -220,8 +216,8 @@ static int ncsi_pkg_info_all_nl(struct sk_buff *skb,
        void *hdr;
        int rc;
 
-       rc = genlmsg_parse(cb->nlh, &ncsi_genl_family, attrs, NCSI_ATTR_MAX,
-                          ncsi_genl_policy, NULL);
+       rc = genlmsg_parse_deprecated(cb->nlh, &ncsi_genl_family, attrs, NCSI_ATTR_MAX,
+                                     ncsi_genl_policy, NULL);
        if (rc)
                return rc;
 
@@ -250,7 +246,7 @@ static int ncsi_pkg_info_all_nl(struct sk_buff *skb,
                goto err;
        }
 
-       attr = nla_nest_start(skb, NCSI_ATTR_PACKAGE_LIST);
+       attr = nla_nest_start_noflag(skb, NCSI_ATTR_PACKAGE_LIST);
        if (!attr) {
                rc = -EMSGSIZE;
                goto err;
@@ -723,38 +719,38 @@ static int ncsi_set_channel_mask_nl(struct sk_buff *msg,
 static const struct genl_ops ncsi_ops[] = {
        {
                .cmd = NCSI_CMD_PKG_INFO,
-               .policy = ncsi_genl_policy,
+               .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = ncsi_pkg_info_nl,
                .dumpit = ncsi_pkg_info_all_nl,
                .flags = 0,
        },
        {
                .cmd = NCSI_CMD_SET_INTERFACE,
-               .policy = ncsi_genl_policy,
+               .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = ncsi_set_interface_nl,
                .flags = GENL_ADMIN_PERM,
        },
        {
                .cmd = NCSI_CMD_CLEAR_INTERFACE,
-               .policy = ncsi_genl_policy,
+               .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = ncsi_clear_interface_nl,
                .flags = GENL_ADMIN_PERM,
        },
        {
                .cmd = NCSI_CMD_SEND_CMD,
-               .policy = ncsi_genl_policy,
+               .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = ncsi_send_cmd_nl,
                .flags = GENL_ADMIN_PERM,
        },
        {
                .cmd = NCSI_CMD_SET_PACKAGE_MASK,
-               .policy = ncsi_genl_policy,
+               .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = ncsi_set_package_mask_nl,
                .flags = GENL_ADMIN_PERM,
        },
        {
                .cmd = NCSI_CMD_SET_CHANNEL_MASK,
-               .policy = ncsi_genl_policy,
+               .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
                .doit = ncsi_set_channel_mask_nl,
                .flags = GENL_ADMIN_PERM,
        },
@@ -764,6 +760,7 @@ static struct genl_family ncsi_genl_family __ro_after_init = {
        .name = "NCSI",
        .version = 0,
        .maxattr = NCSI_ATTR_MAX,
+       .policy = ncsi_genl_policy,
        .module = THIS_MODULE,
        .ops = ncsi_ops,
        .n_ops = ARRAY_SIZE(ncsi_ops),