|
@@ -1014,6 +1014,8 @@ static struct pernet_operations cangw_pernet_ops = {
|
|
|
|
|
|
static __init int cgw_module_init(void)
|
|
static __init int cgw_module_init(void)
|
|
{
|
|
{
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
/* sanitize given module parameter */
|
|
/* sanitize given module parameter */
|
|
max_hops = clamp_t(unsigned int, max_hops, CGW_MIN_HOPS, CGW_MAX_HOPS);
|
|
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;
|
|
notifier.notifier_call = cgw_notifier;
|
|
register_netdevice_notifier(¬ifier);
|
|
register_netdevice_notifier(¬ifier);
|
|
|
|
|
|
- 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(¬ifier);
|
|
unregister_netdevice_notifier(¬ifier);
|
|
kmem_cache_destroy(cgw_cache);
|
|
kmem_cache_destroy(cgw_cache);
|
|
return -ENOBUFS;
|
|
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;
|
|
return 0;
|
|
}
|
|
}
|