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>
This commit is contained in:
committed by
David S. Miller
parent
dbde497966
commit
c53ed74236
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user