diff options
Diffstat (limited to 'net/core/devlink.c')
-rw-r--r-- | net/core/devlink.c | 43 |
1 files changed, 3 insertions, 40 deletions
diff --git a/net/core/devlink.c b/net/core/devlink.c index 78e22cea4cc7..1a65cbf1ab05 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c | |||
@@ -3640,7 +3640,6 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb, | |||
3640 | struct netlink_callback *cb) | 3640 | struct netlink_callback *cb) |
3641 | { | 3641 | { |
3642 | u64 ret_offset, start_offset, end_offset = 0; | 3642 | u64 ret_offset, start_offset, end_offset = 0; |
3643 | const struct genl_ops *ops = cb->data; | ||
3644 | struct devlink_region *region; | 3643 | struct devlink_region *region; |
3645 | struct nlattr *chunks_attr; | 3644 | struct nlattr *chunks_attr; |
3646 | const char *region_name; | 3645 | const char *region_name; |
@@ -3657,7 +3656,8 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb, | |||
3657 | return -ENOMEM; | 3656 | return -ENOMEM; |
3658 | 3657 | ||
3659 | err = nlmsg_parse(cb->nlh, GENL_HDRLEN + devlink_nl_family.hdrsize, | 3658 | err = nlmsg_parse(cb->nlh, GENL_HDRLEN + devlink_nl_family.hdrsize, |
3660 | attrs, DEVLINK_ATTR_MAX, ops->policy, cb->extack); | 3659 | attrs, DEVLINK_ATTR_MAX, devlink_nl_family.policy, |
3660 | cb->extack); | ||
3661 | if (err) | 3661 | if (err) |
3662 | goto out_free; | 3662 | goto out_free; |
3663 | 3663 | ||
@@ -4923,7 +4923,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4923 | .cmd = DEVLINK_CMD_GET, | 4923 | .cmd = DEVLINK_CMD_GET, |
4924 | .doit = devlink_nl_cmd_get_doit, | 4924 | .doit = devlink_nl_cmd_get_doit, |
4925 | .dumpit = devlink_nl_cmd_get_dumpit, | 4925 | .dumpit = devlink_nl_cmd_get_dumpit, |
4926 | .policy = devlink_nl_policy, | ||
4927 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 4926 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
4928 | /* can be retrieved by unprivileged users */ | 4927 | /* can be retrieved by unprivileged users */ |
4929 | }, | 4928 | }, |
@@ -4931,21 +4930,18 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4931 | .cmd = DEVLINK_CMD_PORT_GET, | 4930 | .cmd = DEVLINK_CMD_PORT_GET, |
4932 | .doit = devlink_nl_cmd_port_get_doit, | 4931 | .doit = devlink_nl_cmd_port_get_doit, |
4933 | .dumpit = devlink_nl_cmd_port_get_dumpit, | 4932 | .dumpit = devlink_nl_cmd_port_get_dumpit, |
4934 | .policy = devlink_nl_policy, | ||
4935 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 4933 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
4936 | /* can be retrieved by unprivileged users */ | 4934 | /* can be retrieved by unprivileged users */ |
4937 | }, | 4935 | }, |
4938 | { | 4936 | { |
4939 | .cmd = DEVLINK_CMD_PORT_SET, | 4937 | .cmd = DEVLINK_CMD_PORT_SET, |
4940 | .doit = devlink_nl_cmd_port_set_doit, | 4938 | .doit = devlink_nl_cmd_port_set_doit, |
4941 | .policy = devlink_nl_policy, | ||
4942 | .flags = GENL_ADMIN_PERM, | 4939 | .flags = GENL_ADMIN_PERM, |
4943 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 4940 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
4944 | }, | 4941 | }, |
4945 | { | 4942 | { |
4946 | .cmd = DEVLINK_CMD_PORT_SPLIT, | 4943 | .cmd = DEVLINK_CMD_PORT_SPLIT, |
4947 | .doit = devlink_nl_cmd_port_split_doit, | 4944 | .doit = devlink_nl_cmd_port_split_doit, |
4948 | .policy = devlink_nl_policy, | ||
4949 | .flags = GENL_ADMIN_PERM, | 4945 | .flags = GENL_ADMIN_PERM, |
4950 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4946 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4951 | DEVLINK_NL_FLAG_NO_LOCK, | 4947 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -4953,7 +4949,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4953 | { | 4949 | { |
4954 | .cmd = DEVLINK_CMD_PORT_UNSPLIT, | 4950 | .cmd = DEVLINK_CMD_PORT_UNSPLIT, |
4955 | .doit = devlink_nl_cmd_port_unsplit_doit, | 4951 | .doit = devlink_nl_cmd_port_unsplit_doit, |
4956 | .policy = devlink_nl_policy, | ||
4957 | .flags = GENL_ADMIN_PERM, | 4952 | .flags = GENL_ADMIN_PERM, |
4958 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4953 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4959 | DEVLINK_NL_FLAG_NO_LOCK, | 4954 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -4962,7 +4957,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4962 | .cmd = DEVLINK_CMD_SB_GET, | 4957 | .cmd = DEVLINK_CMD_SB_GET, |
4963 | .doit = devlink_nl_cmd_sb_get_doit, | 4958 | .doit = devlink_nl_cmd_sb_get_doit, |
4964 | .dumpit = devlink_nl_cmd_sb_get_dumpit, | 4959 | .dumpit = devlink_nl_cmd_sb_get_dumpit, |
4965 | .policy = devlink_nl_policy, | ||
4966 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4960 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4967 | DEVLINK_NL_FLAG_NEED_SB, | 4961 | DEVLINK_NL_FLAG_NEED_SB, |
4968 | /* can be retrieved by unprivileged users */ | 4962 | /* can be retrieved by unprivileged users */ |
@@ -4971,7 +4965,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4971 | .cmd = DEVLINK_CMD_SB_POOL_GET, | 4965 | .cmd = DEVLINK_CMD_SB_POOL_GET, |
4972 | .doit = devlink_nl_cmd_sb_pool_get_doit, | 4966 | .doit = devlink_nl_cmd_sb_pool_get_doit, |
4973 | .dumpit = devlink_nl_cmd_sb_pool_get_dumpit, | 4967 | .dumpit = devlink_nl_cmd_sb_pool_get_dumpit, |
4974 | .policy = devlink_nl_policy, | ||
4975 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4968 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4976 | DEVLINK_NL_FLAG_NEED_SB, | 4969 | DEVLINK_NL_FLAG_NEED_SB, |
4977 | /* can be retrieved by unprivileged users */ | 4970 | /* can be retrieved by unprivileged users */ |
@@ -4979,7 +4972,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4979 | { | 4972 | { |
4980 | .cmd = DEVLINK_CMD_SB_POOL_SET, | 4973 | .cmd = DEVLINK_CMD_SB_POOL_SET, |
4981 | .doit = devlink_nl_cmd_sb_pool_set_doit, | 4974 | .doit = devlink_nl_cmd_sb_pool_set_doit, |
4982 | .policy = devlink_nl_policy, | ||
4983 | .flags = GENL_ADMIN_PERM, | 4975 | .flags = GENL_ADMIN_PERM, |
4984 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4976 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4985 | DEVLINK_NL_FLAG_NEED_SB, | 4977 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -4988,7 +4980,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4988 | .cmd = DEVLINK_CMD_SB_PORT_POOL_GET, | 4980 | .cmd = DEVLINK_CMD_SB_PORT_POOL_GET, |
4989 | .doit = devlink_nl_cmd_sb_port_pool_get_doit, | 4981 | .doit = devlink_nl_cmd_sb_port_pool_get_doit, |
4990 | .dumpit = devlink_nl_cmd_sb_port_pool_get_dumpit, | 4982 | .dumpit = devlink_nl_cmd_sb_port_pool_get_dumpit, |
4991 | .policy = devlink_nl_policy, | ||
4992 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 4983 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
4993 | DEVLINK_NL_FLAG_NEED_SB, | 4984 | DEVLINK_NL_FLAG_NEED_SB, |
4994 | /* can be retrieved by unprivileged users */ | 4985 | /* can be retrieved by unprivileged users */ |
@@ -4996,7 +4987,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4996 | { | 4987 | { |
4997 | .cmd = DEVLINK_CMD_SB_PORT_POOL_SET, | 4988 | .cmd = DEVLINK_CMD_SB_PORT_POOL_SET, |
4998 | .doit = devlink_nl_cmd_sb_port_pool_set_doit, | 4989 | .doit = devlink_nl_cmd_sb_port_pool_set_doit, |
4999 | .policy = devlink_nl_policy, | ||
5000 | .flags = GENL_ADMIN_PERM, | 4990 | .flags = GENL_ADMIN_PERM, |
5001 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 4991 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
5002 | DEVLINK_NL_FLAG_NEED_SB, | 4992 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5005,7 +4995,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5005 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_GET, | 4995 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_GET, |
5006 | .doit = devlink_nl_cmd_sb_tc_pool_bind_get_doit, | 4996 | .doit = devlink_nl_cmd_sb_tc_pool_bind_get_doit, |
5007 | .dumpit = devlink_nl_cmd_sb_tc_pool_bind_get_dumpit, | 4997 | .dumpit = devlink_nl_cmd_sb_tc_pool_bind_get_dumpit, |
5008 | .policy = devlink_nl_policy, | ||
5009 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 4998 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
5010 | DEVLINK_NL_FLAG_NEED_SB, | 4999 | DEVLINK_NL_FLAG_NEED_SB, |
5011 | /* can be retrieved by unprivileged users */ | 5000 | /* can be retrieved by unprivileged users */ |
@@ -5013,7 +5002,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5013 | { | 5002 | { |
5014 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_SET, | 5003 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_SET, |
5015 | .doit = devlink_nl_cmd_sb_tc_pool_bind_set_doit, | 5004 | .doit = devlink_nl_cmd_sb_tc_pool_bind_set_doit, |
5016 | .policy = devlink_nl_policy, | ||
5017 | .flags = GENL_ADMIN_PERM, | 5005 | .flags = GENL_ADMIN_PERM, |
5018 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 5006 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
5019 | DEVLINK_NL_FLAG_NEED_SB, | 5007 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5021,7 +5009,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5021 | { | 5009 | { |
5022 | .cmd = DEVLINK_CMD_SB_OCC_SNAPSHOT, | 5010 | .cmd = DEVLINK_CMD_SB_OCC_SNAPSHOT, |
5023 | .doit = devlink_nl_cmd_sb_occ_snapshot_doit, | 5011 | .doit = devlink_nl_cmd_sb_occ_snapshot_doit, |
5024 | .policy = devlink_nl_policy, | ||
5025 | .flags = GENL_ADMIN_PERM, | 5012 | .flags = GENL_ADMIN_PERM, |
5026 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5013 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5027 | DEVLINK_NL_FLAG_NEED_SB, | 5014 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5029,7 +5016,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5029 | { | 5016 | { |
5030 | .cmd = DEVLINK_CMD_SB_OCC_MAX_CLEAR, | 5017 | .cmd = DEVLINK_CMD_SB_OCC_MAX_CLEAR, |
5031 | .doit = devlink_nl_cmd_sb_occ_max_clear_doit, | 5018 | .doit = devlink_nl_cmd_sb_occ_max_clear_doit, |
5032 | .policy = devlink_nl_policy, | ||
5033 | .flags = GENL_ADMIN_PERM, | 5019 | .flags = GENL_ADMIN_PERM, |
5034 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5020 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5035 | DEVLINK_NL_FLAG_NEED_SB, | 5021 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5037,14 +5023,12 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5037 | { | 5023 | { |
5038 | .cmd = DEVLINK_CMD_ESWITCH_GET, | 5024 | .cmd = DEVLINK_CMD_ESWITCH_GET, |
5039 | .doit = devlink_nl_cmd_eswitch_get_doit, | 5025 | .doit = devlink_nl_cmd_eswitch_get_doit, |
5040 | .policy = devlink_nl_policy, | ||
5041 | .flags = GENL_ADMIN_PERM, | 5026 | .flags = GENL_ADMIN_PERM, |
5042 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5027 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5043 | }, | 5028 | }, |
5044 | { | 5029 | { |
5045 | .cmd = DEVLINK_CMD_ESWITCH_SET, | 5030 | .cmd = DEVLINK_CMD_ESWITCH_SET, |
5046 | .doit = devlink_nl_cmd_eswitch_set_doit, | 5031 | .doit = devlink_nl_cmd_eswitch_set_doit, |
5047 | .policy = devlink_nl_policy, | ||
5048 | .flags = GENL_ADMIN_PERM, | 5032 | .flags = GENL_ADMIN_PERM, |
5049 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5033 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5050 | DEVLINK_NL_FLAG_NO_LOCK, | 5034 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5052,49 +5036,42 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5052 | { | 5036 | { |
5053 | .cmd = DEVLINK_CMD_DPIPE_TABLE_GET, | 5037 | .cmd = DEVLINK_CMD_DPIPE_TABLE_GET, |
5054 | .doit = devlink_nl_cmd_dpipe_table_get, | 5038 | .doit = devlink_nl_cmd_dpipe_table_get, |
5055 | .policy = devlink_nl_policy, | ||
5056 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5039 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5057 | /* can be retrieved by unprivileged users */ | 5040 | /* can be retrieved by unprivileged users */ |
5058 | }, | 5041 | }, |
5059 | { | 5042 | { |
5060 | .cmd = DEVLINK_CMD_DPIPE_ENTRIES_GET, | 5043 | .cmd = DEVLINK_CMD_DPIPE_ENTRIES_GET, |
5061 | .doit = devlink_nl_cmd_dpipe_entries_get, | 5044 | .doit = devlink_nl_cmd_dpipe_entries_get, |
5062 | .policy = devlink_nl_policy, | ||
5063 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5045 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5064 | /* can be retrieved by unprivileged users */ | 5046 | /* can be retrieved by unprivileged users */ |
5065 | }, | 5047 | }, |
5066 | { | 5048 | { |
5067 | .cmd = DEVLINK_CMD_DPIPE_HEADERS_GET, | 5049 | .cmd = DEVLINK_CMD_DPIPE_HEADERS_GET, |
5068 | .doit = devlink_nl_cmd_dpipe_headers_get, | 5050 | .doit = devlink_nl_cmd_dpipe_headers_get, |
5069 | .policy = devlink_nl_policy, | ||
5070 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5051 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5071 | /* can be retrieved by unprivileged users */ | 5052 | /* can be retrieved by unprivileged users */ |
5072 | }, | 5053 | }, |
5073 | { | 5054 | { |
5074 | .cmd = DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET, | 5055 | .cmd = DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET, |
5075 | .doit = devlink_nl_cmd_dpipe_table_counters_set, | 5056 | .doit = devlink_nl_cmd_dpipe_table_counters_set, |
5076 | .policy = devlink_nl_policy, | ||
5077 | .flags = GENL_ADMIN_PERM, | 5057 | .flags = GENL_ADMIN_PERM, |
5078 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5058 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5079 | }, | 5059 | }, |
5080 | { | 5060 | { |
5081 | .cmd = DEVLINK_CMD_RESOURCE_SET, | 5061 | .cmd = DEVLINK_CMD_RESOURCE_SET, |
5082 | .doit = devlink_nl_cmd_resource_set, | 5062 | .doit = devlink_nl_cmd_resource_set, |
5083 | .policy = devlink_nl_policy, | ||
5084 | .flags = GENL_ADMIN_PERM, | 5063 | .flags = GENL_ADMIN_PERM, |
5085 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5064 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5086 | }, | 5065 | }, |
5087 | { | 5066 | { |
5088 | .cmd = DEVLINK_CMD_RESOURCE_DUMP, | 5067 | .cmd = DEVLINK_CMD_RESOURCE_DUMP, |
5089 | .doit = devlink_nl_cmd_resource_dump, | 5068 | .doit = devlink_nl_cmd_resource_dump, |
5090 | .policy = devlink_nl_policy, | ||
5091 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5069 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5092 | /* can be retrieved by unprivileged users */ | 5070 | /* can be retrieved by unprivileged users */ |
5093 | }, | 5071 | }, |
5094 | { | 5072 | { |
5095 | .cmd = DEVLINK_CMD_RELOAD, | 5073 | .cmd = DEVLINK_CMD_RELOAD, |
5096 | .doit = devlink_nl_cmd_reload, | 5074 | .doit = devlink_nl_cmd_reload, |
5097 | .policy = devlink_nl_policy, | ||
5098 | .flags = GENL_ADMIN_PERM, | 5075 | .flags = GENL_ADMIN_PERM, |
5099 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5076 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5100 | DEVLINK_NL_FLAG_NO_LOCK, | 5077 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5103,14 +5080,12 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5103 | .cmd = DEVLINK_CMD_PARAM_GET, | 5080 | .cmd = DEVLINK_CMD_PARAM_GET, |
5104 | .doit = devlink_nl_cmd_param_get_doit, | 5081 | .doit = devlink_nl_cmd_param_get_doit, |
5105 | .dumpit = devlink_nl_cmd_param_get_dumpit, | 5082 | .dumpit = devlink_nl_cmd_param_get_dumpit, |
5106 | .policy = devlink_nl_policy, | ||
5107 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5083 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5108 | /* can be retrieved by unprivileged users */ | 5084 | /* can be retrieved by unprivileged users */ |
5109 | }, | 5085 | }, |
5110 | { | 5086 | { |
5111 | .cmd = DEVLINK_CMD_PARAM_SET, | 5087 | .cmd = DEVLINK_CMD_PARAM_SET, |
5112 | .doit = devlink_nl_cmd_param_set_doit, | 5088 | .doit = devlink_nl_cmd_param_set_doit, |
5113 | .policy = devlink_nl_policy, | ||
5114 | .flags = GENL_ADMIN_PERM, | 5089 | .flags = GENL_ADMIN_PERM, |
5115 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5090 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5116 | }, | 5091 | }, |
@@ -5118,14 +5093,12 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5118 | .cmd = DEVLINK_CMD_PORT_PARAM_GET, | 5093 | .cmd = DEVLINK_CMD_PORT_PARAM_GET, |
5119 | .doit = devlink_nl_cmd_port_param_get_doit, | 5094 | .doit = devlink_nl_cmd_port_param_get_doit, |
5120 | .dumpit = devlink_nl_cmd_port_param_get_dumpit, | 5095 | .dumpit = devlink_nl_cmd_port_param_get_dumpit, |
5121 | .policy = devlink_nl_policy, | ||
5122 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 5096 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
5123 | /* can be retrieved by unprivileged users */ | 5097 | /* can be retrieved by unprivileged users */ |
5124 | }, | 5098 | }, |
5125 | { | 5099 | { |
5126 | .cmd = DEVLINK_CMD_PORT_PARAM_SET, | 5100 | .cmd = DEVLINK_CMD_PORT_PARAM_SET, |
5127 | .doit = devlink_nl_cmd_port_param_set_doit, | 5101 | .doit = devlink_nl_cmd_port_param_set_doit, |
5128 | .policy = devlink_nl_policy, | ||
5129 | .flags = GENL_ADMIN_PERM, | 5102 | .flags = GENL_ADMIN_PERM, |
5130 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 5103 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
5131 | }, | 5104 | }, |
@@ -5133,21 +5106,18 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5133 | .cmd = DEVLINK_CMD_REGION_GET, | 5106 | .cmd = DEVLINK_CMD_REGION_GET, |
5134 | .doit = devlink_nl_cmd_region_get_doit, | 5107 | .doit = devlink_nl_cmd_region_get_doit, |
5135 | .dumpit = devlink_nl_cmd_region_get_dumpit, | 5108 | .dumpit = devlink_nl_cmd_region_get_dumpit, |
5136 | .policy = devlink_nl_policy, | ||
5137 | .flags = GENL_ADMIN_PERM, | 5109 | .flags = GENL_ADMIN_PERM, |
5138 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5110 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5139 | }, | 5111 | }, |
5140 | { | 5112 | { |
5141 | .cmd = DEVLINK_CMD_REGION_DEL, | 5113 | .cmd = DEVLINK_CMD_REGION_DEL, |
5142 | .doit = devlink_nl_cmd_region_del, | 5114 | .doit = devlink_nl_cmd_region_del, |
5143 | .policy = devlink_nl_policy, | ||
5144 | .flags = GENL_ADMIN_PERM, | 5115 | .flags = GENL_ADMIN_PERM, |
5145 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5116 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5146 | }, | 5117 | }, |
5147 | { | 5118 | { |
5148 | .cmd = DEVLINK_CMD_REGION_READ, | 5119 | .cmd = DEVLINK_CMD_REGION_READ, |
5149 | .dumpit = devlink_nl_cmd_region_read_dumpit, | 5120 | .dumpit = devlink_nl_cmd_region_read_dumpit, |
5150 | .policy = devlink_nl_policy, | ||
5151 | .flags = GENL_ADMIN_PERM, | 5121 | .flags = GENL_ADMIN_PERM, |
5152 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5122 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5153 | }, | 5123 | }, |
@@ -5155,7 +5125,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5155 | .cmd = DEVLINK_CMD_INFO_GET, | 5125 | .cmd = DEVLINK_CMD_INFO_GET, |
5156 | .doit = devlink_nl_cmd_info_get_doit, | 5126 | .doit = devlink_nl_cmd_info_get_doit, |
5157 | .dumpit = devlink_nl_cmd_info_get_dumpit, | 5127 | .dumpit = devlink_nl_cmd_info_get_dumpit, |
5158 | .policy = devlink_nl_policy, | ||
5159 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5128 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5160 | /* can be retrieved by unprivileged users */ | 5129 | /* can be retrieved by unprivileged users */ |
5161 | }, | 5130 | }, |
@@ -5163,35 +5132,30 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5163 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_GET, | 5132 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_GET, |
5164 | .doit = devlink_nl_cmd_health_reporter_get_doit, | 5133 | .doit = devlink_nl_cmd_health_reporter_get_doit, |
5165 | .dumpit = devlink_nl_cmd_health_reporter_get_dumpit, | 5134 | .dumpit = devlink_nl_cmd_health_reporter_get_dumpit, |
5166 | .policy = devlink_nl_policy, | ||
5167 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5135 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5168 | /* can be retrieved by unprivileged users */ | 5136 | /* can be retrieved by unprivileged users */ |
5169 | }, | 5137 | }, |
5170 | { | 5138 | { |
5171 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_SET, | 5139 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_SET, |
5172 | .doit = devlink_nl_cmd_health_reporter_set_doit, | 5140 | .doit = devlink_nl_cmd_health_reporter_set_doit, |
5173 | .policy = devlink_nl_policy, | ||
5174 | .flags = GENL_ADMIN_PERM, | 5141 | .flags = GENL_ADMIN_PERM, |
5175 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5142 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5176 | }, | 5143 | }, |
5177 | { | 5144 | { |
5178 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_RECOVER, | 5145 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_RECOVER, |
5179 | .doit = devlink_nl_cmd_health_reporter_recover_doit, | 5146 | .doit = devlink_nl_cmd_health_reporter_recover_doit, |
5180 | .policy = devlink_nl_policy, | ||
5181 | .flags = GENL_ADMIN_PERM, | 5147 | .flags = GENL_ADMIN_PERM, |
5182 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5148 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5183 | }, | 5149 | }, |
5184 | { | 5150 | { |
5185 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE, | 5151 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE, |
5186 | .doit = devlink_nl_cmd_health_reporter_diagnose_doit, | 5152 | .doit = devlink_nl_cmd_health_reporter_diagnose_doit, |
5187 | .policy = devlink_nl_policy, | ||
5188 | .flags = GENL_ADMIN_PERM, | 5153 | .flags = GENL_ADMIN_PERM, |
5189 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5154 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5190 | }, | 5155 | }, |
5191 | { | 5156 | { |
5192 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET, | 5157 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET, |
5193 | .doit = devlink_nl_cmd_health_reporter_dump_get_doit, | 5158 | .doit = devlink_nl_cmd_health_reporter_dump_get_doit, |
5194 | .policy = devlink_nl_policy, | ||
5195 | .flags = GENL_ADMIN_PERM, | 5159 | .flags = GENL_ADMIN_PERM, |
5196 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5160 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5197 | DEVLINK_NL_FLAG_NO_LOCK, | 5161 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5199,7 +5163,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5199 | { | 5163 | { |
5200 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR, | 5164 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR, |
5201 | .doit = devlink_nl_cmd_health_reporter_dump_clear_doit, | 5165 | .doit = devlink_nl_cmd_health_reporter_dump_clear_doit, |
5202 | .policy = devlink_nl_policy, | ||
5203 | .flags = GENL_ADMIN_PERM, | 5166 | .flags = GENL_ADMIN_PERM, |
5204 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5167 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5205 | DEVLINK_NL_FLAG_NO_LOCK, | 5168 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5207,7 +5170,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5207 | { | 5170 | { |
5208 | .cmd = DEVLINK_CMD_FLASH_UPDATE, | 5171 | .cmd = DEVLINK_CMD_FLASH_UPDATE, |
5209 | .doit = devlink_nl_cmd_flash_update, | 5172 | .doit = devlink_nl_cmd_flash_update, |
5210 | .policy = devlink_nl_policy, | ||
5211 | .flags = GENL_ADMIN_PERM, | 5173 | .flags = GENL_ADMIN_PERM, |
5212 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5174 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5213 | }, | 5175 | }, |
@@ -5217,6 +5179,7 @@ static struct genl_family devlink_nl_family __ro_after_init = { | |||
5217 | .name = DEVLINK_GENL_NAME, | 5179 | .name = DEVLINK_GENL_NAME, |
5218 | .version = DEVLINK_GENL_VERSION, | 5180 | .version = DEVLINK_GENL_VERSION, |
5219 | .maxattr = DEVLINK_ATTR_MAX, | 5181 | .maxattr = DEVLINK_ATTR_MAX, |
5182 | .policy = devlink_nl_policy, | ||
5220 | .netnsok = true, | 5183 | .netnsok = true, |
5221 | .pre_doit = devlink_nl_pre_doit, | 5184 | .pre_doit = devlink_nl_pre_doit, |
5222 | .post_doit = devlink_nl_post_doit, | 5185 | .post_doit = devlink_nl_post_doit, |