Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck...
[firefly-linux-kernel-4.4.55.git] / net / llc / sysctl_net_llc.c
index e2ebe358626313956ac432c8377ef1564b44805b..d75306b9c2f3e80d5fe0ed90d511d646b8a0728c 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/sysctl.h>
+#include <net/net_namespace.h>
 #include <net/llc.h>
 
 #ifndef CONFIG_SYSCTL
@@ -56,48 +57,29 @@ static struct ctl_table llc_station_table[] = {
        { },
 };
 
-static struct ctl_table llc2_dir_timeout_table[] = {
-       {
-               .procname       = "timeout",
-               .mode           = 0555,
-               .child          = llc2_timeout_table,
-       },
-       { },
-};
-
-static struct ctl_table llc_table[] = {
-       {
-               .procname       = "llc2",
-               .mode           = 0555,
-               .child          = llc2_dir_timeout_table,
-       },
-       {
-               .procname       = "station",
-               .mode           = 0555,
-               .child          = llc_station_table,
-       },
-       { },
-};
-
-static struct ctl_path llc_path[] = {
-       { .procname = "net", },
-       { .procname = "llc", },
-       { }
-};
-
-static struct ctl_table_header *llc_table_header;
+static struct ctl_table_header *llc2_timeout_header;
+static struct ctl_table_header *llc_station_header;
 
 int __init llc_sysctl_init(void)
 {
-       llc_table_header = register_sysctl_paths(llc_path, llc_table);
+       llc2_timeout_header = register_net_sysctl(&init_net, "net/llc/llc2/timeout", llc2_timeout_table);
+       llc_station_header = register_net_sysctl(&init_net, "net/llc/station", llc_station_table);
 
-       return llc_table_header ? 0 : -ENOMEM;
+       if (!llc2_timeout_header || !llc_station_header) {
+               llc_sysctl_exit();
+               return -ENOMEM;
+       }
+       return 0;
 }
 
 void llc_sysctl_exit(void)
 {
-       if (llc_table_header) {
-               unregister_sysctl_table(llc_table_header);
-               llc_table_header = NULL;
+       if (llc2_timeout_header) {
+               unregister_net_sysctl_table(llc2_timeout_header);
+               llc2_timeout_header = NULL;
+       }
+       if (llc_station_header) {
+               unregister_net_sysctl_table(llc_station_header);
+               llc_station_header = NULL;
        }
 }