aboutsummaryrefslogtreecommitdiffstats
path: root/net/ax25/sysctl_net_ax25.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ax25/sysctl_net_ax25.c')
-rw-r--r--net/ax25/sysctl_net_ax25.c39
1 files changed, 5 insertions, 34 deletions
diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
index 62ee3fb34732..ebe0ef3f1d83 100644
--- a/net/ax25/sysctl_net_ax25.c
+++ b/net/ax25/sysctl_net_ax25.c
@@ -7,6 +7,7 @@
7 * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com) 7 * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com)
8 */ 8 */
9#include <linux/mm.h> 9#include <linux/mm.h>
10#include <linux/slab.h>
10#include <linux/sysctl.h> 11#include <linux/sysctl.h>
11#include <linux/spinlock.h> 12#include <linux/spinlock.h>
12#include <net/ax25.h> 13#include <net/ax25.h>
@@ -34,156 +35,128 @@ static ctl_table *ax25_table;
34static int ax25_table_size; 35static int ax25_table_size;
35 36
36static struct ctl_path ax25_path[] = { 37static struct ctl_path ax25_path[] = {
37 { .procname = "net", .ctl_name = CTL_NET, }, 38 { .procname = "net", },
38 { .procname = "ax25", .ctl_name = NET_AX25, }, 39 { .procname = "ax25", },
39 { } 40 { }
40}; 41};
41 42
42static const ctl_table ax25_param_table[] = { 43static const ctl_table ax25_param_table[] = {
43 { 44 {
44 .ctl_name = NET_AX25_IP_DEFAULT_MODE,
45 .procname = "ip_default_mode", 45 .procname = "ip_default_mode",
46 .maxlen = sizeof(int), 46 .maxlen = sizeof(int),
47 .mode = 0644, 47 .mode = 0644,
48 .proc_handler = proc_dointvec_minmax, 48 .proc_handler = proc_dointvec_minmax,
49 .strategy = sysctl_intvec,
50 .extra1 = &min_ipdefmode, 49 .extra1 = &min_ipdefmode,
51 .extra2 = &max_ipdefmode 50 .extra2 = &max_ipdefmode
52 }, 51 },
53 { 52 {
54 .ctl_name = NET_AX25_DEFAULT_MODE,
55 .procname = "ax25_default_mode", 53 .procname = "ax25_default_mode",
56 .maxlen = sizeof(int), 54 .maxlen = sizeof(int),
57 .mode = 0644, 55 .mode = 0644,
58 .proc_handler = proc_dointvec_minmax, 56 .proc_handler = proc_dointvec_minmax,
59 .strategy = sysctl_intvec,
60 .extra1 = &min_axdefmode, 57 .extra1 = &min_axdefmode,
61 .extra2 = &max_axdefmode 58 .extra2 = &max_axdefmode
62 }, 59 },
63 { 60 {
64 .ctl_name = NET_AX25_BACKOFF_TYPE,
65 .procname = "backoff_type", 61 .procname = "backoff_type",
66 .maxlen = sizeof(int), 62 .maxlen = sizeof(int),
67 .mode = 0644, 63 .mode = 0644,
68 .proc_handler = proc_dointvec_minmax, 64 .proc_handler = proc_dointvec_minmax,
69 .strategy = sysctl_intvec,
70 .extra1 = &min_backoff, 65 .extra1 = &min_backoff,
71 .extra2 = &max_backoff 66 .extra2 = &max_backoff
72 }, 67 },
73 { 68 {
74 .ctl_name = NET_AX25_CONNECT_MODE,
75 .procname = "connect_mode", 69 .procname = "connect_mode",
76 .maxlen = sizeof(int), 70 .maxlen = sizeof(int),
77 .mode = 0644, 71 .mode = 0644,
78 .proc_handler = proc_dointvec_minmax, 72 .proc_handler = proc_dointvec_minmax,
79 .strategy = sysctl_intvec,
80 .extra1 = &min_conmode, 73 .extra1 = &min_conmode,
81 .extra2 = &max_conmode 74 .extra2 = &max_conmode
82 }, 75 },
83 { 76 {
84 .ctl_name = NET_AX25_STANDARD_WINDOW,
85 .procname = "standard_window_size", 77 .procname = "standard_window_size",
86 .maxlen = sizeof(int), 78 .maxlen = sizeof(int),
87 .mode = 0644, 79 .mode = 0644,
88 .proc_handler = proc_dointvec_minmax, 80 .proc_handler = proc_dointvec_minmax,
89 .strategy = sysctl_intvec,
90 .extra1 = &min_window, 81 .extra1 = &min_window,
91 .extra2 = &max_window 82 .extra2 = &max_window
92 }, 83 },
93 { 84 {
94 .ctl_name = NET_AX25_EXTENDED_WINDOW,
95 .procname = "extended_window_size", 85 .procname = "extended_window_size",
96 .maxlen = sizeof(int), 86 .maxlen = sizeof(int),
97 .mode = 0644, 87 .mode = 0644,
98 .proc_handler = proc_dointvec_minmax, 88 .proc_handler = proc_dointvec_minmax,
99 .strategy = sysctl_intvec,
100 .extra1 = &min_ewindow, 89 .extra1 = &min_ewindow,
101 .extra2 = &max_ewindow 90 .extra2 = &max_ewindow
102 }, 91 },
103 { 92 {
104 .ctl_name = NET_AX25_T1_TIMEOUT,
105 .procname = "t1_timeout", 93 .procname = "t1_timeout",
106 .maxlen = sizeof(int), 94 .maxlen = sizeof(int),
107 .mode = 0644, 95 .mode = 0644,
108 .proc_handler = proc_dointvec_minmax, 96 .proc_handler = proc_dointvec_minmax,
109 .strategy = sysctl_intvec,
110 .extra1 = &min_t1, 97 .extra1 = &min_t1,
111 .extra2 = &max_t1 98 .extra2 = &max_t1
112 }, 99 },
113 { 100 {
114 .ctl_name = NET_AX25_T2_TIMEOUT,
115 .procname = "t2_timeout", 101 .procname = "t2_timeout",
116 .maxlen = sizeof(int), 102 .maxlen = sizeof(int),
117 .mode = 0644, 103 .mode = 0644,
118 .proc_handler = proc_dointvec_minmax, 104 .proc_handler = proc_dointvec_minmax,
119 .strategy = sysctl_intvec,
120 .extra1 = &min_t2, 105 .extra1 = &min_t2,
121 .extra2 = &max_t2 106 .extra2 = &max_t2
122 }, 107 },
123 { 108 {
124 .ctl_name = NET_AX25_T3_TIMEOUT,
125 .procname = "t3_timeout", 109 .procname = "t3_timeout",
126 .maxlen = sizeof(int), 110 .maxlen = sizeof(int),
127 .mode = 0644, 111 .mode = 0644,
128 .proc_handler = proc_dointvec_minmax, 112 .proc_handler = proc_dointvec_minmax,
129 .strategy = sysctl_intvec,
130 .extra1 = &min_t3, 113 .extra1 = &min_t3,
131 .extra2 = &max_t3 114 .extra2 = &max_t3
132 }, 115 },
133 { 116 {
134 .ctl_name = NET_AX25_IDLE_TIMEOUT,
135 .procname = "idle_timeout", 117 .procname = "idle_timeout",
136 .maxlen = sizeof(int), 118 .maxlen = sizeof(int),
137 .mode = 0644, 119 .mode = 0644,
138 .proc_handler = proc_dointvec_minmax, 120 .proc_handler = proc_dointvec_minmax,
139 .strategy = sysctl_intvec,
140 .extra1 = &min_idle, 121 .extra1 = &min_idle,
141 .extra2 = &max_idle 122 .extra2 = &max_idle
142 }, 123 },
143 { 124 {
144 .ctl_name = NET_AX25_N2,
145 .procname = "maximum_retry_count", 125 .procname = "maximum_retry_count",
146 .maxlen = sizeof(int), 126 .maxlen = sizeof(int),
147 .mode = 0644, 127 .mode = 0644,
148 .proc_handler = proc_dointvec_minmax, 128 .proc_handler = proc_dointvec_minmax,
149 .strategy = sysctl_intvec,
150 .extra1 = &min_n2, 129 .extra1 = &min_n2,
151 .extra2 = &max_n2 130 .extra2 = &max_n2
152 }, 131 },
153 { 132 {
154 .ctl_name = NET_AX25_PACLEN,
155 .procname = "maximum_packet_length", 133 .procname = "maximum_packet_length",
156 .maxlen = sizeof(int), 134 .maxlen = sizeof(int),
157 .mode = 0644, 135 .mode = 0644,
158 .proc_handler = proc_dointvec_minmax, 136 .proc_handler = proc_dointvec_minmax,
159 .strategy = sysctl_intvec,
160 .extra1 = &min_paclen, 137 .extra1 = &min_paclen,
161 .extra2 = &max_paclen 138 .extra2 = &max_paclen
162 }, 139 },
163 { 140 {
164 .ctl_name = NET_AX25_PROTOCOL,
165 .procname = "protocol", 141 .procname = "protocol",
166 .maxlen = sizeof(int), 142 .maxlen = sizeof(int),
167 .mode = 0644, 143 .mode = 0644,
168 .proc_handler = proc_dointvec_minmax, 144 .proc_handler = proc_dointvec_minmax,
169 .strategy = sysctl_intvec,
170 .extra1 = &min_proto, 145 .extra1 = &min_proto,
171 .extra2 = &max_proto 146 .extra2 = &max_proto
172 }, 147 },
173#ifdef CONFIG_AX25_DAMA_SLAVE 148#ifdef CONFIG_AX25_DAMA_SLAVE
174 { 149 {
175 .ctl_name = NET_AX25_DAMA_SLAVE_TIMEOUT,
176 .procname = "dama_slave_timeout", 150 .procname = "dama_slave_timeout",
177 .maxlen = sizeof(int), 151 .maxlen = sizeof(int),
178 .mode = 0644, 152 .mode = 0644,
179 .proc_handler = proc_dointvec_minmax, 153 .proc_handler = proc_dointvec_minmax,
180 .strategy = sysctl_intvec,
181 .extra1 = &min_ds_timeout, 154 .extra1 = &min_ds_timeout,
182 .extra2 = &max_ds_timeout 155 .extra2 = &max_ds_timeout
183 }, 156 },
184#endif 157#endif
185 158
186 { .ctl_name = 0 } /* that's all, folks! */ 159 { } /* that's all, folks! */
187}; 160};
188 161
189void ax25_register_sysctl(void) 162void ax25_register_sysctl(void)
@@ -212,11 +185,9 @@ void ax25_register_sysctl(void)
212 return; 185 return;
213 } 186 }
214 ax25_table[n].child = ax25_dev->systable = child; 187 ax25_table[n].child = ax25_dev->systable = child;
215 ax25_table[n].ctl_name = n + 1;
216 ax25_table[n].procname = ax25_dev->dev->name; 188 ax25_table[n].procname = ax25_dev->dev->name;
217 ax25_table[n].mode = 0555; 189 ax25_table[n].mode = 0555;
218 190
219 child[AX25_MAX_VALUES].ctl_name = 0; /* just in case... */
220 191
221 for (k = 0; k < AX25_MAX_VALUES; k++) 192 for (k = 0; k < AX25_MAX_VALUES; k++)
222 child[k].data = &ax25_dev->values[k]; 193 child[k].data = &ax25_dev->values[k];
@@ -233,7 +204,7 @@ void ax25_unregister_sysctl(void)
233 ctl_table *p; 204 ctl_table *p;
234 unregister_sysctl_table(ax25_table_header); 205 unregister_sysctl_table(ax25_table_header);
235 206
236 for (p = ax25_table; p->ctl_name; p++) 207 for (p = ax25_table; p->procname; p++)
237 kfree(p->child); 208 kfree(p->child);
238 kfree(ax25_table); 209 kfree(ax25_table);
239} 210}