forked from Minki/linux
genetlink: move to smaller ops wherever possible
Bulk of the genetlink users can use smaller ops, move them. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0b588afdd1
commit
66a9b9287d
@ -2183,7 +2183,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct genl_ops nbd_connect_genl_ops[] = {
|
||||
static const struct genl_small_ops nbd_connect_genl_ops[] = {
|
||||
{
|
||||
.cmd = NBD_CMD_CONNECT,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -2215,8 +2215,8 @@ static struct genl_family nbd_genl_family __ro_after_init = {
|
||||
.name = NBD_GENL_FAMILY_NAME,
|
||||
.version = NBD_GENL_VERSION,
|
||||
.module = THIS_MODULE,
|
||||
.ops = nbd_connect_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(nbd_connect_genl_ops),
|
||||
.small_ops = nbd_connect_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(nbd_connect_genl_ops),
|
||||
.maxattr = NBD_ATTR_MAX,
|
||||
.policy = nbd_attr_policy,
|
||||
.mcgrps = nbd_mcast_grps,
|
||||
|
@ -1339,7 +1339,7 @@ static const struct nla_policy gtp_genl_policy[GTPA_MAX + 1] = {
|
||||
[GTPA_O_TEI] = { .type = NLA_U32, },
|
||||
};
|
||||
|
||||
static const struct genl_ops gtp_genl_ops[] = {
|
||||
static const struct genl_small_ops gtp_genl_ops[] = {
|
||||
{
|
||||
.cmd = GTP_CMD_NEWPDP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -1369,8 +1369,8 @@ static struct genl_family gtp_genl_family __ro_after_init = {
|
||||
.policy = gtp_genl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = gtp_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(gtp_genl_ops),
|
||||
.small_ops = gtp_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(gtp_genl_ops),
|
||||
.mcgrps = gtp_genl_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(gtp_genl_mcgrps),
|
||||
};
|
||||
|
@ -583,7 +583,7 @@ static const struct nla_policy hwsim_genl_policy[MAC802154_HWSIM_ATTR_MAX + 1] =
|
||||
};
|
||||
|
||||
/* Generic Netlink operations array */
|
||||
static const struct genl_ops hwsim_nl_ops[] = {
|
||||
static const struct genl_small_ops hwsim_nl_ops[] = {
|
||||
{
|
||||
.cmd = MAC802154_HWSIM_CMD_NEW_RADIO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -628,8 +628,8 @@ static struct genl_family hwsim_genl_family __ro_after_init = {
|
||||
.maxattr = MAC802154_HWSIM_ATTR_MAX,
|
||||
.policy = hwsim_genl_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = hwsim_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(hwsim_nl_ops),
|
||||
.small_ops = hwsim_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(hwsim_nl_ops),
|
||||
.mcgrps = hwsim_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(hwsim_mcgrps),
|
||||
};
|
||||
|
@ -3285,7 +3285,7 @@ done:
|
||||
return skb->len;
|
||||
}
|
||||
|
||||
static const struct genl_ops macsec_genl_ops[] = {
|
||||
static const struct genl_small_ops macsec_genl_ops[] = {
|
||||
{
|
||||
.cmd = MACSEC_CMD_GET_TXSC,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -3361,8 +3361,8 @@ static struct genl_family macsec_fam __ro_after_init = {
|
||||
.policy = macsec_genl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = macsec_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(macsec_genl_ops),
|
||||
.small_ops = macsec_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(macsec_genl_ops),
|
||||
};
|
||||
|
||||
static netdev_tx_t macsec_start_xmit(struct sk_buff *skb,
|
||||
|
@ -2795,7 +2795,7 @@ static int team_nl_cmd_port_list_get(struct sk_buff *skb,
|
||||
return err;
|
||||
}
|
||||
|
||||
static const struct genl_ops team_nl_ops[] = {
|
||||
static const struct genl_small_ops team_nl_ops[] = {
|
||||
{
|
||||
.cmd = TEAM_CMD_NOOP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -2832,8 +2832,8 @@ static struct genl_family team_nl_family __ro_after_init = {
|
||||
.policy = team_nl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = team_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(team_nl_ops),
|
||||
.small_ops = team_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(team_nl_ops),
|
||||
.mcgrps = team_nl_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(team_nl_mcgrps),
|
||||
};
|
||||
|
@ -3964,7 +3964,7 @@ done:
|
||||
}
|
||||
|
||||
/* Generic Netlink operations array */
|
||||
static const struct genl_ops hwsim_ops[] = {
|
||||
static const struct genl_small_ops hwsim_ops[] = {
|
||||
{
|
||||
.cmd = HWSIM_CMD_REGISTER,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -4008,8 +4008,8 @@ static struct genl_family hwsim_genl_family __ro_after_init = {
|
||||
.policy = hwsim_genl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = hwsim_ops,
|
||||
.n_ops = ARRAY_SIZE(hwsim_ops),
|
||||
.small_ops = hwsim_ops,
|
||||
.n_small_ops = ARRAY_SIZE(hwsim_ops),
|
||||
.mcgrps = hwsim_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(hwsim_mcgrps),
|
||||
};
|
||||
|
@ -436,7 +436,7 @@ static int tcmu_genl_set_features(struct sk_buff *skb, struct genl_info *info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct genl_ops tcmu_genl_ops[] = {
|
||||
static const struct genl_small_ops tcmu_genl_ops[] = {
|
||||
{
|
||||
.cmd = TCMU_CMD_SET_FEATURES,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -474,8 +474,8 @@ static struct genl_family tcmu_genl_family __ro_after_init = {
|
||||
.mcgrps = tcmu_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(tcmu_mcgrps),
|
||||
.netnsok = true,
|
||||
.ops = tcmu_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(tcmu_genl_ops),
|
||||
.small_ops = tcmu_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(tcmu_genl_ops),
|
||||
};
|
||||
|
||||
#define tcmu_cmd_set_dbi_cur(cmd, index) ((cmd)->dbi_cur = (index))
|
||||
|
@ -601,7 +601,7 @@ out_free_msg:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct genl_ops thermal_genl_ops[] = {
|
||||
static const struct genl_small_ops thermal_genl_ops[] = {
|
||||
{
|
||||
.cmd = THERMAL_GENL_CMD_TZ_GET_ID,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -635,8 +635,8 @@ static struct genl_family thermal_gnl_family __ro_after_init = {
|
||||
.version = THERMAL_GENL_VERSION,
|
||||
.maxattr = THERMAL_GENL_ATTR_MAX,
|
||||
.policy = thermal_genl_policy,
|
||||
.ops = thermal_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(thermal_genl_ops),
|
||||
.small_ops = thermal_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(thermal_genl_ops),
|
||||
.mcgrps = thermal_genl_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(thermal_genl_mcgrps),
|
||||
};
|
||||
|
@ -62,7 +62,7 @@ static int user_cmd(struct sk_buff *skb, struct genl_info *info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct genl_ops dlm_nl_ops[] = {
|
||||
static const struct genl_small_ops dlm_nl_ops[] = {
|
||||
{
|
||||
.cmd = DLM_CMD_HELLO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -73,8 +73,8 @@ static const struct genl_ops dlm_nl_ops[] = {
|
||||
static struct genl_family family __ro_after_init = {
|
||||
.name = DLM_GENL_NAME,
|
||||
.version = DLM_GENL_VERSION,
|
||||
.ops = dlm_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(dlm_nl_ops),
|
||||
.small_ops = dlm_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(dlm_nl_ops),
|
||||
.module = THIS_MODULE,
|
||||
};
|
||||
|
||||
|
@ -644,7 +644,7 @@ err:
|
||||
nlmsg_free(rep_skb);
|
||||
}
|
||||
|
||||
static const struct genl_ops taskstats_ops[] = {
|
||||
static const struct genl_small_ops taskstats_ops[] = {
|
||||
{
|
||||
.cmd = TASKSTATS_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -687,8 +687,8 @@ static struct genl_family family __ro_after_init = {
|
||||
.version = TASKSTATS_GENL_VERSION,
|
||||
.maxattr = TASKSTATS_CMD_ATTR_MAX,
|
||||
.module = THIS_MODULE,
|
||||
.ops = taskstats_ops,
|
||||
.n_ops = ARRAY_SIZE(taskstats_ops),
|
||||
.small_ops = taskstats_ops,
|
||||
.n_small_ops = ARRAY_SIZE(taskstats_ops),
|
||||
.pre_doit = taskstats_pre_doit,
|
||||
};
|
||||
|
||||
|
@ -1350,7 +1350,7 @@ static void batadv_post_doit(const struct genl_ops *ops, struct sk_buff *skb,
|
||||
}
|
||||
}
|
||||
|
||||
static const struct genl_ops batadv_netlink_ops[] = {
|
||||
static const struct genl_small_ops batadv_netlink_ops[] = {
|
||||
{
|
||||
.cmd = BATADV_CMD_GET_MESH,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -1484,8 +1484,8 @@ struct genl_family batadv_netlink_family __ro_after_init = {
|
||||
.pre_doit = batadv_pre_doit,
|
||||
.post_doit = batadv_post_doit,
|
||||
.module = THIS_MODULE,
|
||||
.ops = batadv_netlink_ops,
|
||||
.n_ops = ARRAY_SIZE(batadv_netlink_ops),
|
||||
.small_ops = batadv_netlink_ops,
|
||||
.n_small_ops = ARRAY_SIZE(batadv_netlink_ops),
|
||||
.mcgrps = batadv_netlink_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(batadv_netlink_mcgrps),
|
||||
};
|
||||
|
@ -7139,7 +7139,7 @@ static const struct nla_policy devlink_nl_policy[DEVLINK_ATTR_MAX + 1] = {
|
||||
[DEVLINK_ATTR_PORT_FUNCTION] = { .type = NLA_NESTED },
|
||||
};
|
||||
|
||||
static const struct genl_ops devlink_nl_ops[] = {
|
||||
static const struct genl_small_ops devlink_nl_ops[] = {
|
||||
{
|
||||
.cmd = DEVLINK_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -7464,8 +7464,8 @@ static struct genl_family devlink_nl_family __ro_after_init = {
|
||||
.pre_doit = devlink_nl_pre_doit,
|
||||
.post_doit = devlink_nl_post_doit,
|
||||
.module = THIS_MODULE,
|
||||
.ops = devlink_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(devlink_nl_ops),
|
||||
.small_ops = devlink_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(devlink_nl_ops),
|
||||
.mcgrps = devlink_nl_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(devlink_nl_mcgrps),
|
||||
};
|
||||
|
@ -1575,7 +1575,7 @@ static const struct nla_policy net_dm_nl_policy[NET_DM_ATTR_MAX + 1] = {
|
||||
[NET_DM_ATTR_HW_DROPS] = {. type = NLA_FLAG },
|
||||
};
|
||||
|
||||
static const struct genl_ops dropmon_ops[] = {
|
||||
static const struct genl_small_ops dropmon_ops[] = {
|
||||
{
|
||||
.cmd = NET_DM_CMD_CONFIG,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -1625,8 +1625,8 @@ static struct genl_family net_drop_monitor_family __ro_after_init = {
|
||||
.pre_doit = net_dm_nl_pre_doit,
|
||||
.post_doit = net_dm_nl_post_doit,
|
||||
.module = THIS_MODULE,
|
||||
.ops = dropmon_ops,
|
||||
.n_ops = ARRAY_SIZE(dropmon_ops),
|
||||
.small_ops = dropmon_ops,
|
||||
.n_small_ops = ARRAY_SIZE(dropmon_ops),
|
||||
.mcgrps = dropmon_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(dropmon_mcgrps),
|
||||
};
|
||||
|
@ -493,7 +493,7 @@ fail:
|
||||
return res;
|
||||
}
|
||||
|
||||
static const struct genl_ops hsr_ops[] = {
|
||||
static const struct genl_small_ops hsr_ops[] = {
|
||||
{
|
||||
.cmd = HSR_C_GET_NODE_STATUS,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -518,8 +518,8 @@ static struct genl_family hsr_genl_family __ro_after_init = {
|
||||
.policy = hsr_genl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = hsr_ops,
|
||||
.n_ops = ARRAY_SIZE(hsr_ops),
|
||||
.small_ops = hsr_ops,
|
||||
.n_small_ops = ARRAY_SIZE(hsr_ops),
|
||||
.mcgrps = hsr_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(hsr_mcgrps),
|
||||
};
|
||||
|
@ -81,7 +81,7 @@ int ieee802154_nl_reply(struct sk_buff *msg, struct genl_info *info)
|
||||
return genlmsg_reply(msg, info);
|
||||
}
|
||||
|
||||
static const struct genl_ops ieee802154_ops[] = {
|
||||
static const struct genl_small_ops ieee802154_ops[] = {
|
||||
/* see nl-phy.c */
|
||||
IEEE802154_DUMP(IEEE802154_LIST_PHY, ieee802154_list_phy,
|
||||
ieee802154_dump_phy),
|
||||
@ -130,8 +130,8 @@ struct genl_family nl802154_family __ro_after_init = {
|
||||
.maxattr = IEEE802154_ATTR_MAX,
|
||||
.policy = ieee802154_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = ieee802154_ops,
|
||||
.n_ops = ARRAY_SIZE(ieee802154_ops),
|
||||
.small_ops = ieee802154_ops,
|
||||
.n_small_ops = ARRAY_SIZE(ieee802154_ops),
|
||||
.mcgrps = ieee802154_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(ieee802154_mcgrps),
|
||||
};
|
||||
|
@ -911,7 +911,7 @@ static int fou_nl_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
return skb->len;
|
||||
}
|
||||
|
||||
static const struct genl_ops fou_nl_ops[] = {
|
||||
static const struct genl_small_ops fou_nl_ops[] = {
|
||||
{
|
||||
.cmd = FOU_CMD_ADD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -940,8 +940,8 @@ static struct genl_family fou_nl_family __ro_after_init = {
|
||||
.policy = fou_nl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = fou_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(fou_nl_ops),
|
||||
.small_ops = fou_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(fou_nl_ops),
|
||||
};
|
||||
|
||||
size_t fou_encap_hlen(struct ip_tunnel_encap *e)
|
||||
|
@ -943,7 +943,7 @@ static int tcp_metrics_nl_cmd_del(struct sk_buff *skb, struct genl_info *info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct genl_ops tcp_metrics_nl_ops[] = {
|
||||
static const struct genl_small_ops tcp_metrics_nl_ops[] = {
|
||||
{
|
||||
.cmd = TCP_METRICS_CMD_GET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -966,8 +966,8 @@ static struct genl_family tcp_metrics_nl_family __ro_after_init = {
|
||||
.policy = tcp_metrics_nl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = tcp_metrics_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(tcp_metrics_nl_ops),
|
||||
.small_ops = tcp_metrics_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(tcp_metrics_nl_ops),
|
||||
};
|
||||
|
||||
static unsigned int tcpmhash_entries;
|
||||
|
@ -914,7 +914,7 @@ static const struct nla_policy l2tp_nl_policy[L2TP_ATTR_MAX + 1] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct genl_ops l2tp_nl_ops[] = {
|
||||
static const struct genl_small_ops l2tp_nl_ops[] = {
|
||||
{
|
||||
.cmd = L2TP_CMD_NOOP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -981,8 +981,8 @@ static struct genl_family l2tp_nl_family __ro_after_init = {
|
||||
.policy = l2tp_nl_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = l2tp_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(l2tp_nl_ops),
|
||||
.small_ops = l2tp_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(l2tp_nl_ops),
|
||||
.mcgrps = l2tp_multicast_group,
|
||||
.n_mcgrps = ARRAY_SIZE(l2tp_multicast_group),
|
||||
};
|
||||
|
@ -1054,7 +1054,7 @@ fail:
|
||||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
static struct genl_ops mptcp_pm_ops[] = {
|
||||
static struct genl_small_ops mptcp_pm_ops[] = {
|
||||
{
|
||||
.cmd = MPTCP_PM_CMD_ADD_ADDR,
|
||||
.doit = mptcp_nl_cmd_add_addr,
|
||||
@ -1093,8 +1093,8 @@ static struct genl_family mptcp_genl_family __ro_after_init = {
|
||||
.policy = mptcp_pm_policy,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = mptcp_pm_ops,
|
||||
.n_ops = ARRAY_SIZE(mptcp_pm_ops),
|
||||
.small_ops = mptcp_pm_ops,
|
||||
.n_small_ops = ARRAY_SIZE(mptcp_pm_ops),
|
||||
.mcgrps = mptcp_pm_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(mptcp_pm_mcgrps),
|
||||
};
|
||||
|
@ -716,7 +716,7 @@ static int ncsi_set_channel_mask_nl(struct sk_buff *msg,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct genl_ops ncsi_ops[] = {
|
||||
static const struct genl_small_ops ncsi_ops[] = {
|
||||
{
|
||||
.cmd = NCSI_CMD_PKG_INFO,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -762,8 +762,8 @@ static struct genl_family ncsi_genl_family __ro_after_init = {
|
||||
.maxattr = NCSI_ATTR_MAX,
|
||||
.policy = ncsi_genl_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = ncsi_ops,
|
||||
.n_ops = ARRAY_SIZE(ncsi_ops),
|
||||
.small_ops = ncsi_ops,
|
||||
.n_small_ops = ARRAY_SIZE(ncsi_ops),
|
||||
};
|
||||
|
||||
int ncsi_init_netlink(struct net_device *dev)
|
||||
|
@ -3893,7 +3893,7 @@ out:
|
||||
}
|
||||
|
||||
|
||||
static const struct genl_ops ip_vs_genl_ops[] = {
|
||||
static const struct genl_small_ops ip_vs_genl_ops[] = {
|
||||
{
|
||||
.cmd = IPVS_CMD_NEW_SERVICE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -4001,8 +4001,8 @@ static struct genl_family ip_vs_genl_family __ro_after_init = {
|
||||
.policy = ip_vs_cmd_policy,
|
||||
.netnsok = true, /* Make ipvsadm to work on netns */
|
||||
.module = THIS_MODULE,
|
||||
.ops = ip_vs_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(ip_vs_genl_ops),
|
||||
.small_ops = ip_vs_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(ip_vs_genl_ops),
|
||||
};
|
||||
|
||||
static int __init ip_vs_genl_register(void)
|
||||
|
@ -304,7 +304,7 @@ static int netlbl_calipso_remove(struct sk_buff *skb, struct genl_info *info)
|
||||
/* NetLabel Generic NETLINK Command Definitions
|
||||
*/
|
||||
|
||||
static const struct genl_ops netlbl_calipso_ops[] = {
|
||||
static const struct genl_small_ops netlbl_calipso_ops[] = {
|
||||
{
|
||||
.cmd = NLBL_CALIPSO_C_ADD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -342,8 +342,8 @@ static struct genl_family netlbl_calipso_gnl_family __ro_after_init = {
|
||||
.maxattr = NLBL_CALIPSO_A_MAX,
|
||||
.policy = calipso_genl_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = netlbl_calipso_ops,
|
||||
.n_ops = ARRAY_SIZE(netlbl_calipso_ops),
|
||||
.small_ops = netlbl_calipso_ops,
|
||||
.n_small_ops = ARRAY_SIZE(netlbl_calipso_ops),
|
||||
};
|
||||
|
||||
/* NetLabel Generic NETLINK Protocol Functions
|
||||
|
@ -724,7 +724,7 @@ static int netlbl_cipsov4_remove(struct sk_buff *skb, struct genl_info *info)
|
||||
* NetLabel Generic NETLINK Command Definitions
|
||||
*/
|
||||
|
||||
static const struct genl_ops netlbl_cipsov4_ops[] = {
|
||||
static const struct genl_small_ops netlbl_cipsov4_ops[] = {
|
||||
{
|
||||
.cmd = NLBL_CIPSOV4_C_ADD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -762,8 +762,8 @@ static struct genl_family netlbl_cipsov4_gnl_family __ro_after_init = {
|
||||
.maxattr = NLBL_CIPSOV4_A_MAX,
|
||||
.policy = netlbl_cipsov4_genl_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = netlbl_cipsov4_ops,
|
||||
.n_ops = ARRAY_SIZE(netlbl_cipsov4_ops),
|
||||
.small_ops = netlbl_cipsov4_ops,
|
||||
.n_small_ops = ARRAY_SIZE(netlbl_cipsov4_ops),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -757,7 +757,7 @@ version_failure:
|
||||
* NetLabel Generic NETLINK Command Definitions
|
||||
*/
|
||||
|
||||
static const struct genl_ops netlbl_mgmt_genl_ops[] = {
|
||||
static const struct genl_small_ops netlbl_mgmt_genl_ops[] = {
|
||||
{
|
||||
.cmd = NLBL_MGMT_C_ADD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -823,8 +823,8 @@ static struct genl_family netlbl_mgmt_gnl_family __ro_after_init = {
|
||||
.maxattr = NLBL_MGMT_A_MAX,
|
||||
.policy = netlbl_mgmt_genl_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = netlbl_mgmt_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(netlbl_mgmt_genl_ops),
|
||||
.small_ops = netlbl_mgmt_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(netlbl_mgmt_genl_ops),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -1301,7 +1301,7 @@ unlabel_staticlistdef_return:
|
||||
* NetLabel Generic NETLINK Command Definitions
|
||||
*/
|
||||
|
||||
static const struct genl_ops netlbl_unlabel_genl_ops[] = {
|
||||
static const struct genl_small_ops netlbl_unlabel_genl_ops[] = {
|
||||
{
|
||||
.cmd = NLBL_UNLABEL_C_STATICADD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -1367,8 +1367,8 @@ static struct genl_family netlbl_unlabel_gnl_family __ro_after_init = {
|
||||
.maxattr = NLBL_UNLABEL_A_MAX,
|
||||
.policy = netlbl_unlabel_genl_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = netlbl_unlabel_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(netlbl_unlabel_genl_ops),
|
||||
.small_ops = netlbl_unlabel_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(netlbl_unlabel_genl_ops),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -2231,7 +2231,7 @@ exit_err:
|
||||
return err;
|
||||
}
|
||||
|
||||
static struct genl_ops ct_limit_genl_ops[] = {
|
||||
static struct genl_small_ops ct_limit_genl_ops[] = {
|
||||
{ .cmd = OVS_CT_LIMIT_CMD_SET,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN
|
||||
@ -2263,8 +2263,8 @@ struct genl_family dp_ct_limit_genl_family __ro_after_init = {
|
||||
.policy = ct_limit_policy,
|
||||
.netnsok = true,
|
||||
.parallel_ops = true,
|
||||
.ops = ct_limit_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(ct_limit_genl_ops),
|
||||
.small_ops = ct_limit_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(ct_limit_genl_ops),
|
||||
.mcgrps = &ovs_ct_limit_multicast_group,
|
||||
.n_mcgrps = 1,
|
||||
.module = THIS_MODULE,
|
||||
|
@ -652,7 +652,7 @@ static const struct nla_policy packet_policy[OVS_PACKET_ATTR_MAX + 1] = {
|
||||
[OVS_PACKET_ATTR_HASH] = { .type = NLA_U64 },
|
||||
};
|
||||
|
||||
static const struct genl_ops dp_packet_genl_ops[] = {
|
||||
static const struct genl_small_ops dp_packet_genl_ops[] = {
|
||||
{ .cmd = OVS_PACKET_CMD_EXECUTE,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */
|
||||
@ -668,8 +668,8 @@ static struct genl_family dp_packet_genl_family __ro_after_init = {
|
||||
.policy = packet_policy,
|
||||
.netnsok = true,
|
||||
.parallel_ops = true,
|
||||
.ops = dp_packet_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(dp_packet_genl_ops),
|
||||
.small_ops = dp_packet_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(dp_packet_genl_ops),
|
||||
.module = THIS_MODULE,
|
||||
};
|
||||
|
||||
@ -1453,7 +1453,7 @@ static const struct nla_policy flow_policy[OVS_FLOW_ATTR_MAX + 1] = {
|
||||
[OVS_FLOW_ATTR_UFID_FLAGS] = { .type = NLA_U32 },
|
||||
};
|
||||
|
||||
static const struct genl_ops dp_flow_genl_ops[] = {
|
||||
static const struct genl_small_ops dp_flow_genl_ops[] = {
|
||||
{ .cmd = OVS_FLOW_CMD_NEW,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */
|
||||
@ -1485,8 +1485,8 @@ static struct genl_family dp_flow_genl_family __ro_after_init = {
|
||||
.policy = flow_policy,
|
||||
.netnsok = true,
|
||||
.parallel_ops = true,
|
||||
.ops = dp_flow_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(dp_flow_genl_ops),
|
||||
.small_ops = dp_flow_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(dp_flow_genl_ops),
|
||||
.mcgrps = &ovs_dp_flow_multicast_group,
|
||||
.n_mcgrps = 1,
|
||||
.module = THIS_MODULE,
|
||||
@ -1918,7 +1918,7 @@ static const struct nla_policy datapath_policy[OVS_DP_ATTR_MAX + 1] = {
|
||||
PCPU_MIN_UNIT_SIZE / sizeof(struct mask_cache_entry)),
|
||||
};
|
||||
|
||||
static const struct genl_ops dp_datapath_genl_ops[] = {
|
||||
static const struct genl_small_ops dp_datapath_genl_ops[] = {
|
||||
{ .cmd = OVS_DP_CMD_NEW,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */
|
||||
@ -1950,8 +1950,8 @@ static struct genl_family dp_datapath_genl_family __ro_after_init = {
|
||||
.policy = datapath_policy,
|
||||
.netnsok = true,
|
||||
.parallel_ops = true,
|
||||
.ops = dp_datapath_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(dp_datapath_genl_ops),
|
||||
.small_ops = dp_datapath_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(dp_datapath_genl_ops),
|
||||
.mcgrps = &ovs_dp_datapath_multicast_group,
|
||||
.n_mcgrps = 1,
|
||||
.module = THIS_MODULE,
|
||||
@ -2401,7 +2401,7 @@ static const struct nla_policy vport_policy[OVS_VPORT_ATTR_MAX + 1] = {
|
||||
[OVS_VPORT_ATTR_NETNSID] = { .type = NLA_S32 },
|
||||
};
|
||||
|
||||
static const struct genl_ops dp_vport_genl_ops[] = {
|
||||
static const struct genl_small_ops dp_vport_genl_ops[] = {
|
||||
{ .cmd = OVS_VPORT_CMD_NEW,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */
|
||||
@ -2433,8 +2433,8 @@ struct genl_family dp_vport_genl_family __ro_after_init = {
|
||||
.policy = vport_policy,
|
||||
.netnsok = true,
|
||||
.parallel_ops = true,
|
||||
.ops = dp_vport_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(dp_vport_genl_ops),
|
||||
.small_ops = dp_vport_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(dp_vport_genl_ops),
|
||||
.mcgrps = &ovs_dp_vport_multicast_group,
|
||||
.n_mcgrps = 1,
|
||||
.module = THIS_MODULE,
|
||||
|
@ -672,7 +672,7 @@ bool ovs_meter_execute(struct datapath *dp, struct sk_buff *skb,
|
||||
return false;
|
||||
}
|
||||
|
||||
static struct genl_ops dp_meter_genl_ops[] = {
|
||||
static struct genl_small_ops dp_meter_genl_ops[] = {
|
||||
{ .cmd = OVS_METER_CMD_FEATURES,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.flags = 0, /* OK for unprivileged users. */
|
||||
@ -711,8 +711,8 @@ struct genl_family dp_meter_genl_family __ro_after_init = {
|
||||
.policy = meter_policy,
|
||||
.netnsok = true,
|
||||
.parallel_ops = true,
|
||||
.ops = dp_meter_genl_ops,
|
||||
.n_ops = ARRAY_SIZE(dp_meter_genl_ops),
|
||||
.small_ops = dp_meter_genl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(dp_meter_genl_ops),
|
||||
.mcgrps = &ovs_meter_multicast_group,
|
||||
.n_mcgrps = 1,
|
||||
.module = THIS_MODULE,
|
||||
|
@ -96,7 +96,7 @@ static int psample_nl_cmd_get_group_dumpit(struct sk_buff *msg,
|
||||
return msg->len;
|
||||
}
|
||||
|
||||
static const struct genl_ops psample_nl_ops[] = {
|
||||
static const struct genl_small_ops psample_nl_ops[] = {
|
||||
{
|
||||
.cmd = PSAMPLE_CMD_GET_GROUP,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -112,8 +112,8 @@ static struct genl_family psample_nl_family __ro_after_init = {
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.mcgrps = psample_nl_mcgrps,
|
||||
.ops = psample_nl_ops,
|
||||
.n_ops = ARRAY_SIZE(psample_nl_ops),
|
||||
.small_ops = psample_nl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(psample_nl_ops),
|
||||
.n_mcgrps = ARRAY_SIZE(psample_nl_mcgrps),
|
||||
};
|
||||
|
||||
|
@ -1337,7 +1337,7 @@ send:
|
||||
return err;
|
||||
}
|
||||
|
||||
static const struct genl_ops tipc_genl_compat_ops[] = {
|
||||
static const struct genl_small_ops tipc_genl_compat_ops[] = {
|
||||
{
|
||||
.cmd = TIPC_GENL_CMD,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -1352,8 +1352,8 @@ static struct genl_family tipc_genl_compat_family __ro_after_init = {
|
||||
.maxattr = 0,
|
||||
.netnsok = true,
|
||||
.module = THIS_MODULE,
|
||||
.ops = tipc_genl_compat_ops,
|
||||
.n_ops = ARRAY_SIZE(tipc_genl_compat_ops),
|
||||
.small_ops = tipc_genl_compat_ops,
|
||||
.n_small_ops = ARRAY_SIZE(tipc_genl_compat_ops),
|
||||
};
|
||||
|
||||
int __init tipc_netlink_compat_start(void)
|
||||
|
@ -401,7 +401,7 @@ static const struct nla_policy wimax_gnl_policy[WIMAX_GNL_ATTR_MAX + 1] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct genl_ops wimax_gnl_ops[] = {
|
||||
static const struct genl_small_ops wimax_gnl_ops[] = {
|
||||
{
|
||||
.cmd = WIMAX_GNL_OP_MSG_FROM_USER,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -560,8 +560,8 @@ struct genl_family wimax_gnl_family __ro_after_init = {
|
||||
.maxattr = WIMAX_GNL_ATTR_MAX,
|
||||
.policy = wimax_gnl_policy,
|
||||
.module = THIS_MODULE,
|
||||
.ops = wimax_gnl_ops,
|
||||
.n_ops = ARRAY_SIZE(wimax_gnl_ops),
|
||||
.small_ops = wimax_gnl_ops,
|
||||
.n_small_ops = ARRAY_SIZE(wimax_gnl_ops),
|
||||
.mcgrps = wimax_gnl_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(wimax_gnl_mcgrps),
|
||||
};
|
||||
|
@ -14665,6 +14665,9 @@ static const struct genl_ops nl80211_ops[] = {
|
||||
.internal_flags = NL80211_FLAG_NEED_WIPHY |
|
||||
NL80211_FLAG_NEED_RTNL,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct genl_small_ops nl80211_small_ops[] = {
|
||||
{
|
||||
.cmd = NL80211_CMD_SET_WIPHY,
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
@ -15526,6 +15529,8 @@ static struct genl_family nl80211_fam __ro_after_init = {
|
||||
.module = THIS_MODULE,
|
||||
.ops = nl80211_ops,
|
||||
.n_ops = ARRAY_SIZE(nl80211_ops),
|
||||
.small_ops = nl80211_small_ops,
|
||||
.n_small_ops = ARRAY_SIZE(nl80211_small_ops),
|
||||
.mcgrps = nl80211_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(nl80211_mcgrps),
|
||||
.parallel_ops = true,
|
||||
|
Loading…
Reference in New Issue
Block a user