Blame view

net/llc/sysctl_net_llc.c 1.83 KB
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  // SPDX-License-Identifier: GPL-2.0
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
2
3
  /*
   * sysctl_net_llc.c: sysctl interface to LLC net subsystem.
d57b1869b   YOSHIFUJI Hideaki   [NET] LLC: Fix wh...
4
   *
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
5
6
   * Arnaldo Carvalho de Melo <acme@conectiva.com.br>
   */
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
7
8
9
  #include <linux/mm.h>
  #include <linux/init.h>
  #include <linux/sysctl.h>
5dd3df105   Eric W. Biederman   net: Move all of ...
10
  #include <net/net_namespace.h>
2928c19e1   Arnaldo Carvalho de Melo   [LLC]: Fix sparse...
11
  #include <net/llc.h>
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
12
13
14
15
  
  #ifndef CONFIG_SYSCTL
  #error This file should not be compiled without CONFIG_SYSCTL defined
  #endif
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
16
17
  static struct ctl_table llc2_timeout_table[] = {
  	{
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
18
19
  		.procname	= "ack",
  		.data		= &sysctl_llc2_ack_timeout,
6b8d9117c   Sasha Levin   net: llc: use cor...
20
  		.maxlen		= sizeof(sysctl_llc2_ack_timeout),
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
21
  		.mode		= 0644,
6d9f239a1   Alexey Dobriyan   net: '&' redux
22
  		.proc_handler   = proc_dointvec_jiffies,
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
23
24
  	},
  	{
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
25
26
  		.procname	= "busy",
  		.data		= &sysctl_llc2_busy_timeout,
6b8d9117c   Sasha Levin   net: llc: use cor...
27
  		.maxlen		= sizeof(sysctl_llc2_busy_timeout),
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
28
  		.mode		= 0644,
6d9f239a1   Alexey Dobriyan   net: '&' redux
29
  		.proc_handler   = proc_dointvec_jiffies,
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
30
31
  	},
  	{
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
32
33
  		.procname	= "p",
  		.data		= &sysctl_llc2_p_timeout,
6b8d9117c   Sasha Levin   net: llc: use cor...
34
  		.maxlen		= sizeof(sysctl_llc2_p_timeout),
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
35
  		.mode		= 0644,
6d9f239a1   Alexey Dobriyan   net: '&' redux
36
  		.proc_handler   = proc_dointvec_jiffies,
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
37
38
  	},
  	{
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
39
40
  		.procname	= "rej",
  		.data		= &sysctl_llc2_rej_timeout,
6b8d9117c   Sasha Levin   net: llc: use cor...
41
  		.maxlen		= sizeof(sysctl_llc2_rej_timeout),
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
42
  		.mode		= 0644,
6d9f239a1   Alexey Dobriyan   net: '&' redux
43
  		.proc_handler   = proc_dointvec_jiffies,
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
44
  	},
f8572d8f2   Eric W. Biederman   sysctl net: Remov...
45
  	{ },
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
46
47
48
  };
  
  static struct ctl_table llc_station_table[] = {
f8572d8f2   Eric W. Biederman   sysctl net: Remov...
49
  	{ },
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
50
  };
64fb30104   Eric W. Biederman   net llc: Don't us...
51
52
  static struct ctl_table_header *llc2_timeout_header;
  static struct ctl_table_header *llc_station_header;
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
53
54
55
  
  int __init llc_sysctl_init(void)
  {
64fb30104   Eric W. Biederman   net llc: Don't us...
56
57
  	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);
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
58

64fb30104   Eric W. Biederman   net llc: Don't us...
59
60
61
62
63
  	if (!llc2_timeout_header || !llc_station_header) {
  		llc_sysctl_exit();
  		return -ENOMEM;
  	}
  	return 0;
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
64
65
66
67
  }
  
  void llc_sysctl_exit(void)
  {
64fb30104   Eric W. Biederman   net llc: Don't us...
68
69
70
71
72
73
74
  	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;
590232a71   Arnaldo Carvalho de Melo   [LLC]: Add sysctl...
75
76
  	}
  }