diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-11-19 09:19:31 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-19 16:39:05 -0500 |
commit | c53ed7423619b4e8108914a9f31b426dd58ad591 (patch) | |
tree | 03a469a7f00d99ff73bf947b5306369bfaff18f5 /net/openvswitch/datapath.c | |
parent | dbde497966804e63a38fdedc1e3815e77097efc2 (diff) |
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 'net/openvswitch/datapath.c')
-rw-r--r-- | net/openvswitch/datapath.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c index 91e1c927a465..8ec8b73033e0 100644 --- a/net/openvswitch/datapath.c +++ b/net/openvswitch/datapath.c | |||
@@ -1817,8 +1817,9 @@ static int dp_register_genl(void) | |||
1817 | for (i = 0; i < ARRAY_SIZE(dp_genl_families); i++) { | 1817 | for (i = 0; i < ARRAY_SIZE(dp_genl_families); i++) { |
1818 | const struct genl_family_and_ops *f = &dp_genl_families[i]; | 1818 | const struct genl_family_and_ops *f = &dp_genl_families[i]; |
1819 | 1819 | ||
1820 | err = genl_register_family_with_ops(f->family, f->ops, | 1820 | f->family->ops = f->ops; |
1821 | f->n_ops); | 1821 | f->family->n_ops = f->n_ops; |
1822 | err = genl_register_family(f->family); | ||
1822 | if (err) | 1823 | if (err) |
1823 | goto error; | 1824 | goto error; |
1824 | n_registered++; | 1825 | n_registered++; |