rtnetlink: make rtnl_register accept a flags parameter
authorFlorian Westphal <fw@strlen.de>
Wed, 9 Aug 2017 18:41:48 +0000 (20:41 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Aug 2017 23:57:38 +0000 (16:57 -0700)
This change allows us to later indicate to rtnetlink core that certain
doit functions should be called without acquiring rtnl_mutex.

This change should have no effect, we simply replace the last (now
unused) calcit argument with the new flag.

Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
26 files changed:
include/net/rtnetlink.h
net/bridge/br_mdb.c
net/can/gw.c
net/core/fib_rules.c
net/core/neighbour.c
net/core/net_namespace.c
net/core/rtnetlink.c
net/dcb/dcbnl.c
net/decnet/dn_dev.c
net/decnet/dn_fib.c
net/decnet/dn_route.c
net/ipv4/devinet.c
net/ipv4/fib_frontend.c
net/ipv4/ipmr.c
net/ipv4/route.c
net/ipv6/addrconf.c
net/ipv6/addrlabel.c
net/ipv6/ip6_fib.c
net/ipv6/ip6mr.c
net/ipv6/route.c
net/mpls/af_mpls.c
net/phonet/pn_netlink.c
net/qrtr/qrtr.c
net/sched/act_api.c
net/sched/cls_api.c
net/sched/sch_api.c

index abe6b733d473cbd84657bc80c184b51dc2e167ac..ac32460a0adb2703e548a4f8895f6d78f5f35ef2 100644 (file)
@@ -7,12 +7,11 @@
 typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *,
                              struct netlink_ext_ack *);
 typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
-typedef u16 (*rtnl_calcit_func)(struct sk_buff *, struct nlmsghdr *);
 
 int __rtnl_register(int protocol, int msgtype,
-                   rtnl_doit_func, rtnl_dumpit_func, rtnl_calcit_func);
+                   rtnl_doit_func, rtnl_dumpit_func, unsigned int flags);
 void rtnl_register(int protocol, int msgtype,
-                  rtnl_doit_func, rtnl_dumpit_func, rtnl_calcit_func);
+                  rtnl_doit_func, rtnl_dumpit_func, unsigned int flags);
 int rtnl_unregister(int protocol, int msgtype);
 void rtnl_unregister_all(int protocol);
 
index a0b11e7d67d9ad6857f394a8a71b1cd2ce244eb7..ca01def49af0666a451599aa6e00ecb55c8286c8 100644 (file)
@@ -713,9 +713,9 @@ static int br_mdb_del(struct sk_buff *skb, struct nlmsghdr *nlh,
 
 void br_mdb_init(void)
 {
-       rtnl_register(PF_BRIDGE, RTM_GETMDB, NULL, br_mdb_dump, NULL);
-       rtnl_register(PF_BRIDGE, RTM_NEWMDB, br_mdb_add, NULL, NULL);
-       rtnl_register(PF_BRIDGE, RTM_DELMDB, br_mdb_del, NULL, NULL);
+       rtnl_register(PF_BRIDGE, RTM_GETMDB, NULL, br_mdb_dump, 0);
+       rtnl_register(PF_BRIDGE, RTM_NEWMDB, br_mdb_add, NULL, 0);
+       rtnl_register(PF_BRIDGE, RTM_DELMDB, br_mdb_del, NULL, 0);
 }
 
 void br_mdb_uninit(void)
index 29748d844c3fac1bda35d494cdc1474fe81849a9..73a02af4b5d76015df42b7eae46f2ba153e79f5c 100644 (file)
@@ -1031,15 +1031,15 @@ static __init int cgw_module_init(void)
        notifier.notifier_call = cgw_notifier;
        register_netdevice_notifier(&notifier);
 
-       if (__rtnl_register(PF_CAN, RTM_GETROUTE, NULL, cgw_dump_jobs, NULL)) {
+       if (__rtnl_register(PF_CAN, RTM_GETROUTE, NULL, cgw_dump_jobs, 0)) {
                unregister_netdevice_notifier(&notifier);
                kmem_cache_destroy(cgw_cache);
                return -ENOBUFS;
        }
 
        /* Only the first call to __rtnl_register can fail */
-       __rtnl_register(PF_CAN, RTM_NEWROUTE, cgw_create_job, NULL, NULL);
-       __rtnl_register(PF_CAN, RTM_DELROUTE, cgw_remove_job, NULL, NULL);
+       __rtnl_register(PF_CAN, RTM_NEWROUTE, cgw_create_job, NULL, 0);
+       __rtnl_register(PF_CAN, RTM_DELROUTE, cgw_remove_job, NULL, 0);
 
        return 0;
 }
index fc0b65093417d6d1c2607313a43f6ddc65076240..9a6d97c1d8104eac629273337ca8999a86118533 100644 (file)
@@ -1026,9 +1026,9 @@ static struct pernet_operations fib_rules_net_ops = {
 static int __init fib_rules_init(void)
 {
        int err;
-       rtnl_register(PF_UNSPEC, RTM_NEWRULE, fib_nl_newrule, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_DELRULE, fib_nl_delrule, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_GETRULE, NULL, fib_nl_dumprule, NULL);
+       rtnl_register(PF_UNSPEC, RTM_NEWRULE, fib_nl_newrule, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_DELRULE, fib_nl_delrule, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_GETRULE, NULL, fib_nl_dumprule, 0);
 
        err = register_pernet_subsys(&fib_rules_net_ops);
        if (err < 0)
index d0713627deb61623524c4b5cd26454abe92fc6d9..16a1a4c4eb57fa1147f230916e2e62e18ef89562 100644 (file)
@@ -3261,13 +3261,13 @@ EXPORT_SYMBOL(neigh_sysctl_unregister);
 
 static int __init neigh_init(void)
 {
-       rtnl_register(PF_UNSPEC, RTM_NEWNEIGH, neigh_add, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_DELNEIGH, neigh_delete, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_GETNEIGH, NULL, neigh_dump_info, NULL);
+       rtnl_register(PF_UNSPEC, RTM_NEWNEIGH, neigh_add, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_DELNEIGH, neigh_delete, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_GETNEIGH, NULL, neigh_dump_info, 0);
 
        rtnl_register(PF_UNSPEC, RTM_GETNEIGHTBL, NULL, neightbl_dump_info,
-                     NULL);
-       rtnl_register(PF_UNSPEC, RTM_SETNEIGHTBL, neightbl_set, NULL, NULL);
+                     0);
+       rtnl_register(PF_UNSPEC, RTM_SETNEIGHTBL, neightbl_set, NULL, 0);
 
        return 0;
 }
index 8726d051f31dd2ddce96a8cd7b1ccf50435f0d92..a7f06d706aa0360db27214d308ca9d2f9c3fb587 100644 (file)
@@ -855,9 +855,9 @@ static int __init net_ns_init(void)
 
        register_pernet_subsys(&net_ns_ops);
 
-       rtnl_register(PF_UNSPEC, RTM_NEWNSID, rtnl_net_newid, NULL, NULL);
+       rtnl_register(PF_UNSPEC, RTM_NEWNSID, rtnl_net_newid, NULL, 0);
        rtnl_register(PF_UNSPEC, RTM_GETNSID, rtnl_net_getid, rtnl_net_dumpid,
-                     NULL);
+                     0);
 
        return 0;
 }
index 8c9d34deea7d0f8fff7202e9ffcffad54b04361f..67607c540c034474ca648e9b78eac5505f5a0af1 100644 (file)
@@ -178,7 +178,7 @@ static rtnl_dumpit_func rtnl_get_dumpit(int protocol, int msgindex)
  * @msgtype: rtnetlink message type
  * @doit: Function pointer called for each request message
  * @dumpit: Function pointer called for each dump request (NLM_F_DUMP) message
- * @calcit: Function pointer to calc size of dump message
+ * @flags: rtnl_link_flags to modifiy behaviour of doit/dumpit functions
  *
  * Registers the specified function pointers (at least one of them has
  * to be non-NULL) to be called whenever a request message for the
@@ -192,7 +192,7 @@ static rtnl_dumpit_func rtnl_get_dumpit(int protocol, int msgindex)
  */
 int __rtnl_register(int protocol, int msgtype,
                    rtnl_doit_func doit, rtnl_dumpit_func dumpit,
-                   rtnl_calcit_func calcit)
+                   unsigned int flags)
 {
        struct rtnl_link *tab;
        int msgindex;
@@ -230,9 +230,9 @@ EXPORT_SYMBOL_GPL(__rtnl_register);
  */
 void rtnl_register(int protocol, int msgtype,
                   rtnl_doit_func doit, rtnl_dumpit_func dumpit,
-                  rtnl_calcit_func calcit)
+                  unsigned int flags)
 {
-       if (__rtnl_register(protocol, msgtype, doit, dumpit, calcit) < 0)
+       if (__rtnl_register(protocol, msgtype, doit, dumpit, flags) < 0)
                panic("Unable to register rtnetlink message handler, "
                      "protocol = %d, message type = %d\n",
                      protocol, msgtype);
@@ -4279,23 +4279,23 @@ void __init rtnetlink_init(void)
        register_netdevice_notifier(&rtnetlink_dev_notifier);
 
        rtnl_register(PF_UNSPEC, RTM_GETLINK, rtnl_getlink,
-                     rtnl_dump_ifinfo, NULL);
-       rtnl_register(PF_UNSPEC, RTM_SETLINK, rtnl_setlink, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_NEWLINK, rtnl_newlink, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_DELLINK, rtnl_dellink, NULL, NULL);
+                     rtnl_dump_ifinfo, 0);
+       rtnl_register(PF_UNSPEC, RTM_SETLINK, rtnl_setlink, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_NEWLINK, rtnl_newlink, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_DELLINK, rtnl_dellink, NULL, 0);
 
-       rtnl_register(PF_UNSPEC, RTM_GETADDR, NULL, rtnl_dump_all, NULL);
-       rtnl_register(PF_UNSPEC, RTM_GETROUTE, NULL, rtnl_dump_all, NULL);
-       rtnl_register(PF_UNSPEC, RTM_GETNETCONF, NULL, rtnl_dump_all, NULL);
+       rtnl_register(PF_UNSPEC, RTM_GETADDR, NULL, rtnl_dump_all, 0);
+       rtnl_register(PF_UNSPEC, RTM_GETROUTE, NULL, rtnl_dump_all, 0);
+       rtnl_register(PF_UNSPEC, RTM_GETNETCONF, NULL, rtnl_dump_all, 0);
 
-       rtnl_register(PF_BRIDGE, RTM_NEWNEIGH, rtnl_fdb_add, NULL, NULL);
-       rtnl_register(PF_BRIDGE, RTM_DELNEIGH, rtnl_fdb_del, NULL, NULL);
-       rtnl_register(PF_BRIDGE, RTM_GETNEIGH, NULL, rtnl_fdb_dump, NULL);
+       rtnl_register(PF_BRIDGE, RTM_NEWNEIGH, rtnl_fdb_add, NULL, 0);
+       rtnl_register(PF_BRIDGE, RTM_DELNEIGH, rtnl_fdb_del, NULL, 0);
+       rtnl_register(PF_BRIDGE, RTM_GETNEIGH, NULL, rtnl_fdb_dump, 0);
 
-       rtnl_register(PF_BRIDGE, RTM_GETLINK, NULL, rtnl_bridge_getlink, NULL);
-       rtnl_register(PF_BRIDGE, RTM_DELLINK, rtnl_bridge_dellink, NULL, NULL);
-       rtnl_register(PF_BRIDGE, RTM_SETLINK, rtnl_bridge_setlink, NULL, NULL);
+       rtnl_register(PF_BRIDGE, RTM_GETLINK, NULL, rtnl_bridge_getlink, 0);
+       rtnl_register(PF_BRIDGE, RTM_DELLINK, rtnl_bridge_dellink, NULL, 0);
+       rtnl_register(PF_BRIDGE, RTM_SETLINK, rtnl_bridge_setlink, NULL, 0);
 
        rtnl_register(PF_UNSPEC, RTM_GETSTATS, rtnl_stats_get, rtnl_stats_dump,
-                     NULL);
+                     0);
 }
index 733f523707acfb8c9a296436a0b6c5d603bc3f4e..bae7d78aa06895dd9237abc6f1bc2ae3db23f38b 100644 (file)
@@ -1938,8 +1938,8 @@ static int __init dcbnl_init(void)
 {
        INIT_LIST_HEAD(&dcb_app_list);
 
-       rtnl_register(PF_UNSPEC, RTM_GETDCB, dcb_doit, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_SETDCB, dcb_doit, NULL, NULL);
+       rtnl_register(PF_UNSPEC, RTM_GETDCB, dcb_doit, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_SETDCB, dcb_doit, NULL, 0);
 
        return 0;
 }
index fa0110b57ca122f858ac93e557cb8cb10556f0a9..4d339de56862ce5c9bdf7a82f2bc3506553d43a0 100644 (file)
@@ -1419,9 +1419,9 @@ void __init dn_dev_init(void)
 
        dn_dev_devices_on();
 
-       rtnl_register(PF_DECnet, RTM_NEWADDR, dn_nl_newaddr, NULL, NULL);
-       rtnl_register(PF_DECnet, RTM_DELADDR, dn_nl_deladdr, NULL, NULL);
-       rtnl_register(PF_DECnet, RTM_GETADDR, NULL, dn_nl_dump_ifaddr, NULL);
+       rtnl_register(PF_DECnet, RTM_NEWADDR, dn_nl_newaddr, NULL, 0);
+       rtnl_register(PF_DECnet, RTM_DELADDR, dn_nl_deladdr, NULL, 0);
+       rtnl_register(PF_DECnet, RTM_GETADDR, NULL, dn_nl_dump_ifaddr, 0);
 
        proc_create("decnet_dev", S_IRUGO, init_net.proc_net, &dn_dev_seq_fops);
 
index f9f6fb3f3c5b3dd520263448a784a99925c87b09..3d37464c8b4aa4be97333b95216b89aa9e711e9e 100644 (file)
@@ -791,8 +791,8 @@ void __init dn_fib_init(void)
 
        register_dnaddr_notifier(&dn_fib_dnaddr_notifier);
 
-       rtnl_register(PF_DECnet, RTM_NEWROUTE, dn_fib_rtm_newroute, NULL, NULL);
-       rtnl_register(PF_DECnet, RTM_DELROUTE, dn_fib_rtm_delroute, NULL, NULL);
+       rtnl_register(PF_DECnet, RTM_NEWROUTE, dn_fib_rtm_newroute, NULL, 0);
+       rtnl_register(PF_DECnet, RTM_DELROUTE, dn_fib_rtm_delroute, NULL, 0);
 }
 
 
index bcbe548f8854e103146932c0a7006b1ba04f3bfd..0bd3afd01dd2994bcbfc6d3a79a47cf8a25a7df0 100644 (file)
@@ -1922,10 +1922,10 @@ void __init dn_route_init(void)
 
 #ifdef CONFIG_DECNET_ROUTER
        rtnl_register(PF_DECnet, RTM_GETROUTE, dn_cache_getroute,
-                     dn_fib_dump, NULL);
+                     dn_fib_dump, 0);
 #else
        rtnl_register(PF_DECnet, RTM_GETROUTE, dn_cache_getroute,
-                     dn_cache_dump, NULL);
+                     dn_cache_dump, 0);
 #endif
 }
 
index 38d9af9b917c08685deb3288baab84189ec9c9a0..d7adc06165998947efc6cda8bed31c77c0976d14 100644 (file)
@@ -2491,9 +2491,9 @@ void __init devinet_init(void)
 
        rtnl_af_register(&inet_af_ops);
 
-       rtnl_register(PF_INET, RTM_NEWADDR, inet_rtm_newaddr, NULL, NULL);
-       rtnl_register(PF_INET, RTM_DELADDR, inet_rtm_deladdr, NULL, NULL);
-       rtnl_register(PF_INET, RTM_GETADDR, NULL, inet_dump_ifaddr, NULL);
+       rtnl_register(PF_INET, RTM_NEWADDR, inet_rtm_newaddr, NULL, 0);
+       rtnl_register(PF_INET, RTM_DELADDR, inet_rtm_deladdr, NULL, 0);
+       rtnl_register(PF_INET, RTM_GETADDR, NULL, inet_dump_ifaddr, 0);
        rtnl_register(PF_INET, RTM_GETNETCONF, inet_netconf_get_devconf,
-                     inet_netconf_dump_devconf, NULL);
+                     inet_netconf_dump_devconf, 0);
 }
index 2cba559f14df01b5f2cdea64bbb5fe704b0c8ac8..37819ab4cc74935b35b01108d187897f5acac896 100644 (file)
@@ -1348,7 +1348,7 @@ void __init ip_fib_init(void)
        register_netdevice_notifier(&fib_netdev_notifier);
        register_inetaddr_notifier(&fib_inetaddr_notifier);
 
-       rtnl_register(PF_INET, RTM_NEWROUTE, inet_rtm_newroute, NULL, NULL);
-       rtnl_register(PF_INET, RTM_DELROUTE, inet_rtm_delroute, NULL, NULL);
-       rtnl_register(PF_INET, RTM_GETROUTE, NULL, inet_dump_fib, NULL);
+       rtnl_register(PF_INET, RTM_NEWROUTE, inet_rtm_newroute, NULL, 0);
+       rtnl_register(PF_INET, RTM_DELROUTE, inet_rtm_delroute, NULL, 0);
+       rtnl_register(PF_INET, RTM_GETROUTE, NULL, inet_dump_fib, 0);
 }
index 06863ea3fc5b8c5582a70b14a4da9ecc67851822..c9b3e6e069aea65a88c20b0702450240f7f83417 100644 (file)
@@ -3114,14 +3114,14 @@ int __init ip_mr_init(void)
        }
 #endif
        rtnl_register(RTNL_FAMILY_IPMR, RTM_GETROUTE,
-                     ipmr_rtm_getroute, ipmr_rtm_dumproute, NULL);
+                     ipmr_rtm_getroute, ipmr_rtm_dumproute, 0);
        rtnl_register(RTNL_FAMILY_IPMR, RTM_NEWROUTE,
-                     ipmr_rtm_route, NULL, NULL);
+                     ipmr_rtm_route, NULL, 0);
        rtnl_register(RTNL_FAMILY_IPMR, RTM_DELROUTE,
-                     ipmr_rtm_route, NULL, NULL);
+                     ipmr_rtm_route, NULL, 0);
 
        rtnl_register(RTNL_FAMILY_IPMR, RTM_GETLINK,
-                     NULL, ipmr_rtm_dumplink, NULL);
+                     NULL, ipmr_rtm_dumplink, 0);
        return 0;
 
 #ifdef CONFIG_IP_PIMSM_V2
index 0383e66f59bcef3bd6b8627edae9aa2d34139f5d..2ef46294475fd6b334336bd861ce58c92fc1c976 100644 (file)
@@ -3067,7 +3067,7 @@ int __init ip_rt_init(void)
        xfrm_init();
        xfrm4_init();
 #endif
-       rtnl_register(PF_INET, RTM_GETROUTE, inet_rtm_getroute, NULL, NULL);
+       rtnl_register(PF_INET, RTM_GETROUTE, inet_rtm_getroute, NULL, 0);
 
 #ifdef CONFIG_SYSCTL
        register_pernet_subsys(&sysctl_route_ops);
index 30ee23eef26882e1438f565dcc2739e34345339c..640792e1ecb7257713524c3e4d977eb384a3b8db 100644 (file)
@@ -6605,21 +6605,21 @@ int __init addrconf_init(void)
        rtnl_af_register(&inet6_ops);
 
        err = __rtnl_register(PF_INET6, RTM_GETLINK, NULL, inet6_dump_ifinfo,
-                             NULL);
+                             0);
        if (err < 0)
                goto errout;
 
        /* Only the first call to __rtnl_register can fail */
-       __rtnl_register(PF_INET6, RTM_NEWADDR, inet6_rtm_newaddr, NULL, NULL);
-       __rtnl_register(PF_INET6, RTM_DELADDR, inet6_rtm_deladdr, NULL, NULL);
+       __rtnl_register(PF_INET6, RTM_NEWADDR, inet6_rtm_newaddr, NULL, 0);
+       __rtnl_register(PF_INET6, RTM_DELADDR, inet6_rtm_deladdr, NULL, 0);
        __rtnl_register(PF_INET6, RTM_GETADDR, inet6_rtm_getaddr,
-                       inet6_dump_ifaddr, NULL);
+                       inet6_dump_ifaddr, 0);
        __rtnl_register(PF_INET6, RTM_GETMULTICAST, NULL,
-                       inet6_dump_ifmcaddr, NULL);
+                       inet6_dump_ifmcaddr, 0);
        __rtnl_register(PF_INET6, RTM_GETANYCAST, NULL,
-                       inet6_dump_ifacaddr, NULL);
+                       inet6_dump_ifacaddr, 0);
        __rtnl_register(PF_INET6, RTM_GETNETCONF, inet6_netconf_get_devconf,
-                       inet6_netconf_dump_devconf, NULL);
+                       inet6_netconf_dump_devconf, 0);
 
        ipv6_addr_label_rtnl_register();
 
index 7a428f65c7ece0b7155e26ba4afbf9e37f7f8690..cea5eb488013e34403e4b049ab39c9d003706e58 100644 (file)
@@ -593,10 +593,10 @@ out:
 void __init ipv6_addr_label_rtnl_register(void)
 {
        __rtnl_register(PF_INET6, RTM_NEWADDRLABEL, ip6addrlbl_newdel,
-                       NULL, NULL);
+                       NULL, 0);
        __rtnl_register(PF_INET6, RTM_DELADDRLABEL, ip6addrlbl_newdel,
-                       NULL, NULL);
+                       NULL, 0);
        __rtnl_register(PF_INET6, RTM_GETADDRLABEL, ip6addrlbl_get,
-                       ip6addrlbl_dump, NULL);
+                       ip6addrlbl_dump, 0);
 }
 
index 69ed0043d1173f728e4f922b515c4bf39dc83e05..8c58c7558de003bb47e9c50c7f4fcfc0b7251bd5 100644 (file)
@@ -2038,7 +2038,7 @@ int __init fib6_init(void)
                goto out_kmem_cache_create;
 
        ret = __rtnl_register(PF_INET6, RTM_GETROUTE, NULL, inet6_dump_fib,
-                             NULL);
+                             0);
        if (ret)
                goto out_unregister_subsys;
 
index 7454850f20984a954682caef51db98f79ede5833..f5500f5444e9845b8b6ed423a7ce63e559dd0c40 100644 (file)
@@ -1427,7 +1427,7 @@ int __init ip6_mr_init(void)
        }
 #endif
        rtnl_register(RTNL_FAMILY_IP6MR, RTM_GETROUTE, NULL,
-                     ip6mr_rtm_dumproute, NULL);
+                     ip6mr_rtm_dumproute, 0);
        return 0;
 #ifdef CONFIG_IPV6_PIMSM_V2
 add_proto_fail:
index c73e61750642ae2df24a096df25569d27e3c2722..035762fed07db7c2859acf76fe1a991944d90154 100644 (file)
@@ -4105,9 +4105,9 @@ int __init ip6_route_init(void)
                goto fib6_rules_init;
 
        ret = -ENOBUFS;
-       if (__rtnl_register(PF_INET6, RTM_NEWROUTE, inet6_rtm_newroute, NULL, NULL) ||
-           __rtnl_register(PF_INET6, RTM_DELROUTE, inet6_rtm_delroute, NULL, NULL) ||
-           __rtnl_register(PF_INET6, RTM_GETROUTE, inet6_rtm_getroute, NULL, NULL))
+       if (__rtnl_register(PF_INET6, RTM_NEWROUTE, inet6_rtm_newroute, NULL, 0) ||
+           __rtnl_register(PF_INET6, RTM_DELROUTE, inet6_rtm_delroute, NULL, 0) ||
+           __rtnl_register(PF_INET6, RTM_GETROUTE, inet6_rtm_getroute, NULL, 0))
                goto out_register_late_subsys;
 
        ret = register_netdevice_notifier(&ip6_route_dev_notifier);
index ea4f481839dd9a3d16ec2e87922e87e2684d094c..c5b9ce41d66fadc903c9341c7808ec3d3ce89933 100644 (file)
@@ -2479,12 +2479,12 @@ static int __init mpls_init(void)
 
        rtnl_af_register(&mpls_af_ops);
 
-       rtnl_register(PF_MPLS, RTM_NEWROUTE, mpls_rtm_newroute, NULL, NULL);
-       rtnl_register(PF_MPLS, RTM_DELROUTE, mpls_rtm_delroute, NULL, NULL);
+       rtnl_register(PF_MPLS, RTM_NEWROUTE, mpls_rtm_newroute, NULL, 0);
+       rtnl_register(PF_MPLS, RTM_DELROUTE, mpls_rtm_delroute, NULL, 0);
        rtnl_register(PF_MPLS, RTM_GETROUTE, mpls_getroute, mpls_dump_routes,
-                     NULL);
+                     0);
        rtnl_register(PF_MPLS, RTM_GETNETCONF, mpls_netconf_get_devconf,
-                     mpls_netconf_dump_devconf, NULL);
+                     mpls_netconf_dump_devconf, 0);
        err = 0;
 out:
        return err;
index 45b3af3080d8349f9e9c6e7f424f0548a79a42b0..da754fc926e72b11379216819d0608bd598d737d 100644 (file)
@@ -300,15 +300,15 @@ out:
 int __init phonet_netlink_register(void)
 {
        int err = __rtnl_register(PF_PHONET, RTM_NEWADDR, addr_doit,
-                                 NULL, NULL);
+                                 NULL, 0);
        if (err)
                return err;
 
        /* Further __rtnl_register() cannot fail */
-       __rtnl_register(PF_PHONET, RTM_DELADDR, addr_doit, NULL, NULL);
-       __rtnl_register(PF_PHONET, RTM_GETADDR, NULL, getaddr_dumpit, NULL);
-       __rtnl_register(PF_PHONET, RTM_NEWROUTE, route_doit, NULL, NULL);
-       __rtnl_register(PF_PHONET, RTM_DELROUTE, route_doit, NULL, NULL);
-       __rtnl_register(PF_PHONET, RTM_GETROUTE, NULL, route_dumpit, NULL);
+       __rtnl_register(PF_PHONET, RTM_DELADDR, addr_doit, NULL, 0);
+       __rtnl_register(PF_PHONET, RTM_GETADDR, NULL, getaddr_dumpit, 0);
+       __rtnl_register(PF_PHONET, RTM_NEWROUTE, route_doit, NULL, 0);
+       __rtnl_register(PF_PHONET, RTM_DELROUTE, route_doit, NULL, 0);
+       __rtnl_register(PF_PHONET, RTM_GETROUTE, NULL, route_dumpit, 0);
        return 0;
 }
index 5586609afa2728e7f138f4eed5e4818d43b1a0bb..c2f5c13550c052de0484582af9aabda3500cc030 100644 (file)
@@ -1081,7 +1081,7 @@ static int __init qrtr_proto_init(void)
                return rc;
        }
 
-       rtnl_register(PF_QIPCRTR, RTM_NEWADDR, qrtr_addr_doit, NULL, NULL);
+       rtnl_register(PF_QIPCRTR, RTM_NEWADDR, qrtr_addr_doit, NULL, 0);
 
        return 0;
 }
index a2915d95827944dcf762c962d2b925dcd9602916..02fcb0c78a286c3cafe7152d2e0086396eaf778e 100644 (file)
@@ -1255,10 +1255,10 @@ out_module_put:
 
 static int __init tc_action_init(void)
 {
-       rtnl_register(PF_UNSPEC, RTM_NEWACTION, tc_ctl_action, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_DELACTION, tc_ctl_action, NULL, NULL);
+       rtnl_register(PF_UNSPEC, RTM_NEWACTION, tc_ctl_action, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_DELACTION, tc_ctl_action, NULL, 0);
        rtnl_register(PF_UNSPEC, RTM_GETACTION, tc_ctl_action, tc_dump_action,
-                     NULL);
+                     0);
 
        return 0;
 }
index 8d1157aebaf7b27d9fbc95a92fc206b7a25777e8..ebeeb87e6d44da32b998d517f17586ced8790005 100644 (file)
@@ -1010,10 +1010,10 @@ EXPORT_SYMBOL(tcf_exts_get_dev);
 
 static int __init tc_filter_init(void)
 {
-       rtnl_register(PF_UNSPEC, RTM_NEWTFILTER, tc_ctl_tfilter, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_DELTFILTER, tc_ctl_tfilter, NULL, NULL);
+       rtnl_register(PF_UNSPEC, RTM_NEWTFILTER, tc_ctl_tfilter, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_DELTFILTER, tc_ctl_tfilter, NULL, 0);
        rtnl_register(PF_UNSPEC, RTM_GETTFILTER, tc_ctl_tfilter,
-                     tc_dump_tfilter, NULL);
+                     tc_dump_tfilter, 0);
 
        return 0;
 }
index bd24a550e0f9f114598f4a398d6efd4c72672f50..816c8092e601aa026971906143102b44169e0a81 100644 (file)
@@ -1952,14 +1952,14 @@ static int __init pktsched_init(void)
        register_qdisc(&mq_qdisc_ops);
        register_qdisc(&noqueue_qdisc_ops);
 
-       rtnl_register(PF_UNSPEC, RTM_NEWQDISC, tc_modify_qdisc, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_DELQDISC, tc_get_qdisc, NULL, NULL);
+       rtnl_register(PF_UNSPEC, RTM_NEWQDISC, tc_modify_qdisc, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_DELQDISC, tc_get_qdisc, NULL, 0);
        rtnl_register(PF_UNSPEC, RTM_GETQDISC, tc_get_qdisc, tc_dump_qdisc,
-                     NULL);
-       rtnl_register(PF_UNSPEC, RTM_NEWTCLASS, tc_ctl_tclass, NULL, NULL);
-       rtnl_register(PF_UNSPEC, RTM_DELTCLASS, tc_ctl_tclass, NULL, NULL);
+                     0);
+       rtnl_register(PF_UNSPEC, RTM_NEWTCLASS, tc_ctl_tclass, NULL, 0);
+       rtnl_register(PF_UNSPEC, RTM_DELTCLASS, tc_ctl_tclass, NULL, 0);
        rtnl_register(PF_UNSPEC, RTM_GETTCLASS, tc_ctl_tclass, tc_dump_tclass,
-                     NULL);
+                     0);
 
        return 0;
 }