genetlink: statically initialize families
Instead of providing macros/inline functions to initialize the families, make all users initialize them statically and get rid of the macros. This reduces the kernel code size by about 1.6k on x86-64 (with allyesconfig). Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Tento commit je obsažen v:

odevzdal
David S. Miller

rodič
a07ea4d994
revize
489111e5c2
@@ -28,13 +28,6 @@
|
||||
static unsigned int ieee802154_seq_num;
|
||||
static DEFINE_SPINLOCK(ieee802154_seq_lock);
|
||||
|
||||
struct genl_family nl802154_family = {
|
||||
.hdrsize = 0,
|
||||
.name = IEEE802154_NL_NAME,
|
||||
.version = 1,
|
||||
.maxattr = IEEE802154_ATTR_MAX,
|
||||
};
|
||||
|
||||
/* Requests to userspace */
|
||||
struct sk_buff *ieee802154_nl_create(int flags, u8 req)
|
||||
{
|
||||
@@ -138,11 +131,21 @@ static const struct genl_multicast_group ieee802154_mcgrps[] = {
|
||||
[IEEE802154_BEACON_MCGRP] = { .name = IEEE802154_MCAST_BEACON_NAME, },
|
||||
};
|
||||
|
||||
struct genl_family nl802154_family = {
|
||||
.hdrsize = 0,
|
||||
.name = IEEE802154_NL_NAME,
|
||||
.version = 1,
|
||||
.maxattr = IEEE802154_ATTR_MAX,
|
||||
.module = THIS_MODULE,
|
||||
.ops = ieee8021154_ops,
|
||||
.n_ops = ARRAY_SIZE(ieee8021154_ops),
|
||||
.mcgrps = ieee802154_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(ieee802154_mcgrps),
|
||||
};
|
||||
|
||||
int __init ieee802154_nl_init(void)
|
||||
{
|
||||
return genl_register_family_with_ops_groups(&nl802154_family,
|
||||
ieee8021154_ops,
|
||||
ieee802154_mcgrps);
|
||||
return genl_register_family(&nl802154_family);
|
||||
}
|
||||
|
||||
void ieee802154_nl_exit(void)
|
||||
|
@@ -26,22 +26,8 @@
|
||||
#include "rdev-ops.h"
|
||||
#include "core.h"
|
||||
|
||||
static int nl802154_pre_doit(const struct genl_ops *ops, struct sk_buff *skb,
|
||||
struct genl_info *info);
|
||||
|
||||
static void nl802154_post_doit(const struct genl_ops *ops, struct sk_buff *skb,
|
||||
struct genl_info *info);
|
||||
|
||||
/* the netlink family */
|
||||
static struct genl_family nl802154_fam = {
|
||||
.name = NL802154_GENL_NAME, /* have users key off the name instead */
|
||||
.hdrsize = 0, /* no private header */
|
||||
.version = 1, /* no particular meaning now */
|
||||
.maxattr = NL802154_ATTR_MAX,
|
||||
.netnsok = true,
|
||||
.pre_doit = nl802154_pre_doit,
|
||||
.post_doit = nl802154_post_doit,
|
||||
};
|
||||
static struct genl_family nl802154_fam;
|
||||
|
||||
/* multicast groups */
|
||||
enum nl802154_multicast_groups {
|
||||
@@ -2476,11 +2462,25 @@ static const struct genl_ops nl802154_ops[] = {
|
||||
#endif /* CONFIG_IEEE802154_NL802154_EXPERIMENTAL */
|
||||
};
|
||||
|
||||
static struct genl_family nl802154_fam = {
|
||||
.name = NL802154_GENL_NAME, /* have users key off the name instead */
|
||||
.hdrsize = 0, /* no private header */
|
||||
.version = 1, /* no particular meaning now */
|
||||
.maxattr = NL802154_ATTR_MAX,
|
||||
.netnsok = true,
|
||||
.pre_doit = nl802154_pre_doit,
|
||||
.post_doit = nl802154_post_doit,
|
||||
.module = THIS_MODULE,
|
||||
.ops = nl802154_ops,
|
||||
.n_ops = ARRAY_SIZE(nl802154_ops),
|
||||
.mcgrps = nl802154_mcgrps,
|
||||
.n_mcgrps = ARRAY_SIZE(nl802154_mcgrps),
|
||||
};
|
||||
|
||||
/* initialisation/exit functions */
|
||||
int nl802154_init(void)
|
||||
{
|
||||
return genl_register_family_with_ops_groups(&nl802154_fam, nl802154_ops,
|
||||
nl802154_mcgrps);
|
||||
return genl_register_family(&nl802154_fam);
|
||||
}
|
||||
|
||||
void nl802154_exit(void)
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele