diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-11-19 15:19:31 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-19 16:39:05 -0500 |
commit | c53ed7423619b4e8108914a9f31b426dd58ad591 (patch) | |
tree | 03a469a7f00d99ff73bf947b5306369bfaff18f5 /include/net | |
parent | dbde497966804e63a38fdedc1e3815e77097efc2 (diff) | |
download | op-kernel-dev-c53ed7423619b4e8108914a9f31b426dd58ad591.zip op-kernel-dev-c53ed7423619b4e8108914a9f31b426dd58ad591.tar.gz |
genetlink: only pass array to genl_register_family_with_ops()
As suggested by David Miller, make genl_register_family_with_ops()
a macro and pass only the array, evaluating ARRAY_SIZE() in the
macro, this is a little safer.
The openvswitch has some indirection, assing ops/n_ops directly in
that code. This might ultimately just assign the pointers in the
family initializations, saving the struct genl_family_and_ops and
code (once mcast groups are handled differently.)
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/genetlink.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/net/genetlink.h b/include/net/genetlink.h index e96385d..9bd52a4 100644 --- a/include/net/genetlink.h +++ b/include/net/genetlink.h @@ -152,8 +152,9 @@ static inline int genl_register_family(struct genl_family *family) * * Return 0 on success or a negative error code. */ -static inline int genl_register_family_with_ops(struct genl_family *family, - const struct genl_ops *ops, size_t n_ops) +static inline int _genl_register_family_with_ops(struct genl_family *family, + const struct genl_ops *ops, + size_t n_ops) { family->module = THIS_MODULE; family->ops = ops; @@ -161,6 +162,9 @@ static inline int genl_register_family_with_ops(struct genl_family *family, return __genl_register_family(family); } +#define genl_register_family_with_ops(family, ops) \ + _genl_register_family_with_ops((family), (ops), ARRAY_SIZE(ops)) + int genl_unregister_family(struct genl_family *family); int genl_register_mc_group(struct genl_family *family, struct genl_multicast_group *grp); |