|
@@ -283,37 +283,9 @@ static struct notifier_block netprio_device_notifier = {
|
|
|
|
|
|
static int __init init_cgroup_netprio(void)
|
|
static int __init init_cgroup_netprio(void)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
-
|
|
|
|
- ret = cgroup_load_subsys(&net_prio_subsys);
|
|
|
|
- if (ret)
|
|
|
|
- goto out;
|
|
|
|
-
|
|
|
|
register_netdevice_notifier(&netprio_device_notifier);
|
|
register_netdevice_notifier(&netprio_device_notifier);
|
|
-
|
|
|
|
-out:
|
|
|
|
- return ret;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void __exit exit_cgroup_netprio(void)
|
|
|
|
-{
|
|
|
|
- struct netprio_map *old;
|
|
|
|
- struct net_device *dev;
|
|
|
|
-
|
|
|
|
- unregister_netdevice_notifier(&netprio_device_notifier);
|
|
|
|
-
|
|
|
|
- cgroup_unload_subsys(&net_prio_subsys);
|
|
|
|
-
|
|
|
|
- rtnl_lock();
|
|
|
|
- for_each_netdev(&init_net, dev) {
|
|
|
|
- old = rtnl_dereference(dev->priomap);
|
|
|
|
- RCU_INIT_POINTER(dev->priomap, NULL);
|
|
|
|
- if (old)
|
|
|
|
- kfree_rcu(old, rcu);
|
|
|
|
- }
|
|
|
|
- rtnl_unlock();
|
|
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-module_init(init_cgroup_netprio);
|
|
|
|
-module_exit(exit_cgroup_netprio);
|
|
|
|
|
|
+subsys_initcall(init_cgroup_netprio);
|
|
MODULE_LICENSE("GPL v2");
|
|
MODULE_LICENSE("GPL v2");
|