Commit c1c502b5 authored by Florian Westphal's avatar Florian Westphal Committed by David S. Miller
Browse files

net: use rtnl_register_module where needed



all of these can be compiled as a module, so use new
_module version to make sure module can no longer be removed
while callback/dump is in use.

Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e4202511
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -760,9 +760,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, 0);
	rtnl_register(PF_BRIDGE, RTM_NEWMDB, br_mdb_add, NULL, 0);
	rtnl_register(PF_BRIDGE, RTM_DELMDB, br_mdb_del, NULL, 0);
	rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_GETMDB, NULL, br_mdb_dump, 0);
	rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_NEWMDB, br_mdb_add, NULL, 0);
	rtnl_register_module(THIS_MODULE, PF_BRIDGE, RTM_DELMDB, br_mdb_del, NULL, 0);
}

void br_mdb_uninit(void)
+10 −4
Original line number Diff line number Diff line
@@ -1014,6 +1014,8 @@ static struct pernet_operations cangw_pernet_ops = {

static __init int cgw_module_init(void)
{
	int ret;

	/* sanitize given module parameter */
	max_hops = clamp_t(unsigned int, max_hops, CGW_MIN_HOPS, CGW_MAX_HOPS);

@@ -1031,15 +1033,19 @@ 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, 0)) {
	ret = rtnl_register_module(THIS_MODULE, PF_CAN, RTM_GETROUTE,
				   NULL, cgw_dump_jobs, 0);
	if (ret) {
		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, 0);
	__rtnl_register(PF_CAN, RTM_DELROUTE, cgw_remove_job, NULL, 0);
	/* Only the first call to rtnl_register_module can fail */
	rtnl_register_module(THIS_MODULE, PF_CAN, RTM_NEWROUTE,
			     cgw_create_job, NULL, 0);
	rtnl_register_module(THIS_MODULE, PF_CAN, RTM_DELROUTE,
			     cgw_remove_job, NULL, 0);

	return 0;
}
+6 −3
Original line number Diff line number Diff line
@@ -1418,9 +1418,12 @@ void __init dn_dev_init(void)

	dn_dev_devices_on();

	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);
	rtnl_register_module(THIS_MODULE, PF_DECnet, RTM_NEWADDR,
			     dn_nl_newaddr, NULL, 0);
	rtnl_register_module(THIS_MODULE, PF_DECnet, RTM_DELADDR,
			     dn_nl_deladdr, NULL, 0);
	rtnl_register_module(THIS_MODULE, PF_DECnet, RTM_GETADDR,
			     NULL, dn_nl_dump_ifaddr, 0);

	proc_create("decnet_dev", S_IRUGO, init_net.proc_net, &dn_dev_seq_fops);

+4 −2
Original line number Diff line number Diff line
@@ -792,8 +792,10 @@ void __init dn_fib_init(void)

	register_dnaddr_notifier(&dn_fib_dnaddr_notifier);

	rtnl_register(PF_DECnet, RTM_NEWROUTE, dn_fib_rtm_newroute, NULL, 0);
	rtnl_register(PF_DECnet, RTM_DELROUTE, dn_fib_rtm_delroute, NULL, 0);
	rtnl_register_module(THIS_MODULE, PF_DECnet, RTM_NEWROUTE,
			     dn_fib_rtm_newroute, NULL, 0);
	rtnl_register_module(THIS_MODULE, PF_DECnet, RTM_DELROUTE,
			     dn_fib_rtm_delroute, NULL, 0);
}

+4 −4
Original line number Diff line number Diff line
@@ -1923,11 +1923,11 @@ void __init dn_route_init(void)
		    &dn_rt_cache_seq_fops);

#ifdef CONFIG_DECNET_ROUTER
	rtnl_register(PF_DECnet, RTM_GETROUTE, dn_cache_getroute,
		      dn_fib_dump, 0);
	rtnl_register_module(THIS_MODULE, PF_DECnet, RTM_GETROUTE,
			     dn_cache_getroute, dn_fib_dump, 0);
#else
	rtnl_register(PF_DECnet, RTM_GETROUTE, dn_cache_getroute,
		      dn_cache_dump, 0);
	rtnl_register_module(THIS_MODULE, PF_DECnet, RTM_GETROUTE,
			     dn_cache_getroute, dn_cache_dump, 0);
#endif
}

Loading