Commit 83ac201b4f06eb8aeb7ac93cf162651ba30e0b28

Authored by Eric W. Biederman
1 parent a965cf946d

sysctl: Remove dead code from sysctl_check

Now that the sys_sysctl is now a compatibility wrapper around
/proc/sys we can remove much of sysctl_check and reduce it
to a few remaining sanity checks.  This completely decouples
it from the binary sysctl system call.

Little things like ensuring that the sysctl has not already
been registered are all that remain.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>

Showing 2 changed files with 4 additions and 1374 deletions Side-by-side Diff

kernel/sysctl_check.c
Changes suppressed. Click to show
... ... @@ -5,1240 +5,7 @@
5 5 #include <linux/string.h>
6 6 #include <net/ip_vs.h>
7 7  
8   -struct trans_ctl_table {
9   - int ctl_name;
10   - const char *procname;
11   - const struct trans_ctl_table *child;
12   -};
13 8  
14   -static const struct trans_ctl_table trans_random_table[] = {
15   - { RANDOM_POOLSIZE, "poolsize" },
16   - { RANDOM_ENTROPY_COUNT, "entropy_avail" },
17   - { RANDOM_READ_THRESH, "read_wakeup_threshold" },
18   - { RANDOM_WRITE_THRESH, "write_wakeup_threshold" },
19   - { RANDOM_BOOT_ID, "boot_id" },
20   - { RANDOM_UUID, "uuid" },
21   - {}
22   -};
23   -
24   -static const struct trans_ctl_table trans_pty_table[] = {
25   - { PTY_MAX, "max" },
26   - { PTY_NR, "nr" },
27   - {}
28   -};
29   -
30   -static const struct trans_ctl_table trans_kern_table[] = {
31   - { KERN_OSTYPE, "ostype" },
32   - { KERN_OSRELEASE, "osrelease" },
33   - /* KERN_OSREV not used */
34   - { KERN_VERSION, "version" },
35   - /* KERN_SECUREMASK not used */
36   - /* KERN_PROF not used */
37   - { KERN_NODENAME, "hostname" },
38   - { KERN_DOMAINNAME, "domainname" },
39   -
40   - { KERN_PANIC, "panic" },
41   - { KERN_REALROOTDEV, "real-root-dev" },
42   -
43   - { KERN_SPARC_REBOOT, "reboot-cmd" },
44   - { KERN_CTLALTDEL, "ctrl-alt-del" },
45   - { KERN_PRINTK, "printk" },
46   -
47   - /* KERN_NAMETRANS not used */
48   - /* KERN_PPC_HTABRECLAIM not used */
49   - /* KERN_PPC_ZEROPAGED not used */
50   - { KERN_PPC_POWERSAVE_NAP, "powersave-nap" },
51   -
52   - { KERN_MODPROBE, "modprobe" },
53   - { KERN_SG_BIG_BUFF, "sg-big-buff" },
54   - { KERN_ACCT, "acct" },
55   - { KERN_PPC_L2CR, "l2cr" },
56   -
57   - /* KERN_RTSIGNR not used */
58   - /* KERN_RTSIGMAX not used */
59   -
60   - { KERN_SHMMAX, "shmmax" },
61   - { KERN_MSGMAX, "msgmax" },
62   - { KERN_MSGMNB, "msgmnb" },
63   - /* KERN_MSGPOOL not used*/
64   - { KERN_SYSRQ, "sysrq" },
65   - { KERN_MAX_THREADS, "threads-max" },
66   - { KERN_RANDOM, "random", trans_random_table },
67   - { KERN_SHMALL, "shmall" },
68   - { KERN_MSGMNI, "msgmni" },
69   - { KERN_SEM, "sem" },
70   - { KERN_SPARC_STOP_A, "stop-a" },
71   - { KERN_SHMMNI, "shmmni" },
72   -
73   - { KERN_OVERFLOWUID, "overflowuid" },
74   - { KERN_OVERFLOWGID, "overflowgid" },
75   -
76   - { KERN_HOTPLUG, "hotplug", },
77   - { KERN_IEEE_EMULATION_WARNINGS, "ieee_emulation_warnings" },
78   -
79   - { KERN_S390_USER_DEBUG_LOGGING, "userprocess_debug" },
80   - { KERN_CORE_USES_PID, "core_uses_pid" },
81   - { KERN_TAINTED, "tainted" },
82   - { KERN_CADPID, "cad_pid" },
83   - { KERN_PIDMAX, "pid_max" },
84   - { KERN_CORE_PATTERN, "core_pattern" },
85   - { KERN_PANIC_ON_OOPS, "panic_on_oops" },
86   - { KERN_HPPA_PWRSW, "soft-power" },
87   - { KERN_HPPA_UNALIGNED, "unaligned-trap" },
88   -
89   - { KERN_PRINTK_RATELIMIT, "printk_ratelimit" },
90   - { KERN_PRINTK_RATELIMIT_BURST, "printk_ratelimit_burst" },
91   -
92   - { KERN_PTY, "pty", trans_pty_table },
93   - { KERN_NGROUPS_MAX, "ngroups_max" },
94   - { KERN_SPARC_SCONS_PWROFF, "scons-poweroff" },
95   - { KERN_HZ_TIMER, "hz_timer" },
96   - { KERN_UNKNOWN_NMI_PANIC, "unknown_nmi_panic" },
97   - { KERN_BOOTLOADER_TYPE, "bootloader_type" },
98   - { KERN_RANDOMIZE, "randomize_va_space" },
99   -
100   - { KERN_SPIN_RETRY, "spin_retry" },
101   - { KERN_ACPI_VIDEO_FLAGS, "acpi_video_flags" },
102   - { KERN_IA64_UNALIGNED, "ignore-unaligned-usertrap" },
103   - { KERN_COMPAT_LOG, "compat-log" },
104   - { KERN_MAX_LOCK_DEPTH, "max_lock_depth" },
105   - { KERN_NMI_WATCHDOG, "nmi_watchdog" },
106   - { KERN_PANIC_ON_NMI, "panic_on_unrecovered_nmi" },
107   - {}
108   -};
109   -
110   -static const struct trans_ctl_table trans_vm_table[] = {
111   - { VM_OVERCOMMIT_MEMORY, "overcommit_memory" },
112   - { VM_PAGE_CLUSTER, "page-cluster" },
113   - { VM_DIRTY_BACKGROUND, "dirty_background_ratio" },
114   - { VM_DIRTY_RATIO, "dirty_ratio" },
115   - { VM_DIRTY_WB_CS, "dirty_writeback_centisecs" },
116   - { VM_DIRTY_EXPIRE_CS, "dirty_expire_centisecs" },
117   - { VM_NR_PDFLUSH_THREADS, "nr_pdflush_threads" },
118   - { VM_OVERCOMMIT_RATIO, "overcommit_ratio" },
119   - /* VM_PAGEBUF unused */
120   - { VM_HUGETLB_PAGES, "nr_hugepages" },
121   - { VM_SWAPPINESS, "swappiness" },
122   - { VM_LOWMEM_RESERVE_RATIO, "lowmem_reserve_ratio" },
123   - { VM_MIN_FREE_KBYTES, "min_free_kbytes" },
124   - { VM_MAX_MAP_COUNT, "max_map_count" },
125   - { VM_LAPTOP_MODE, "laptop_mode" },
126   - { VM_BLOCK_DUMP, "block_dump" },
127   - { VM_HUGETLB_GROUP, "hugetlb_shm_group" },
128   - { VM_VFS_CACHE_PRESSURE, "vfs_cache_pressure" },
129   - { VM_LEGACY_VA_LAYOUT, "legacy_va_layout" },
130   - /* VM_SWAP_TOKEN_TIMEOUT unused */
131   - { VM_DROP_PAGECACHE, "drop_caches" },
132   - { VM_PERCPU_PAGELIST_FRACTION, "percpu_pagelist_fraction" },
133   - { VM_ZONE_RECLAIM_MODE, "zone_reclaim_mode" },
134   - { VM_MIN_UNMAPPED, "min_unmapped_ratio" },
135   - { VM_PANIC_ON_OOM, "panic_on_oom" },
136   - { VM_VDSO_ENABLED, "vdso_enabled" },
137   - { VM_MIN_SLAB, "min_slab_ratio" },
138   -
139   - {}
140   -};
141   -
142   -static const struct trans_ctl_table trans_net_core_table[] = {
143   - { NET_CORE_WMEM_MAX, "wmem_max" },
144   - { NET_CORE_RMEM_MAX, "rmem_max" },
145   - { NET_CORE_WMEM_DEFAULT, "wmem_default" },
146   - { NET_CORE_RMEM_DEFAULT, "rmem_default" },
147   - /* NET_CORE_DESTROY_DELAY unused */
148   - { NET_CORE_MAX_BACKLOG, "netdev_max_backlog" },
149   - /* NET_CORE_FASTROUTE unused */
150   - { NET_CORE_MSG_COST, "message_cost" },
151   - { NET_CORE_MSG_BURST, "message_burst" },
152   - { NET_CORE_OPTMEM_MAX, "optmem_max" },
153   - /* NET_CORE_HOT_LIST_LENGTH unused */
154   - /* NET_CORE_DIVERT_VERSION unused */
155   - /* NET_CORE_NO_CONG_THRESH unused */
156   - /* NET_CORE_NO_CONG unused */
157   - /* NET_CORE_LO_CONG unused */
158   - /* NET_CORE_MOD_CONG unused */
159   - { NET_CORE_DEV_WEIGHT, "dev_weight" },
160   - { NET_CORE_SOMAXCONN, "somaxconn" },
161   - { NET_CORE_BUDGET, "netdev_budget" },
162   - { NET_CORE_AEVENT_ETIME, "xfrm_aevent_etime" },
163   - { NET_CORE_AEVENT_RSEQTH, "xfrm_aevent_rseqth" },
164   - { NET_CORE_WARNINGS, "warnings" },
165   - {},
166   -};
167   -
168   -static const struct trans_ctl_table trans_net_unix_table[] = {
169   - /* NET_UNIX_DESTROY_DELAY unused */
170   - /* NET_UNIX_DELETE_DELAY unused */
171   - { NET_UNIX_MAX_DGRAM_QLEN, "max_dgram_qlen" },
172   - {}
173   -};
174   -
175   -static const struct trans_ctl_table trans_net_ipv4_route_table[] = {
176   - { NET_IPV4_ROUTE_FLUSH, "flush" },
177   - { NET_IPV4_ROUTE_MIN_DELAY, "min_delay" },
178   - { NET_IPV4_ROUTE_MAX_DELAY, "max_delay" },
179   - { NET_IPV4_ROUTE_GC_THRESH, "gc_thresh" },
180   - { NET_IPV4_ROUTE_MAX_SIZE, "max_size" },
181   - { NET_IPV4_ROUTE_GC_MIN_INTERVAL, "gc_min_interval" },
182   - { NET_IPV4_ROUTE_GC_TIMEOUT, "gc_timeout" },
183   - { NET_IPV4_ROUTE_GC_INTERVAL, "gc_interval" },
184   - { NET_IPV4_ROUTE_REDIRECT_LOAD, "redirect_load" },
185   - { NET_IPV4_ROUTE_REDIRECT_NUMBER, "redirect_number" },
186   - { NET_IPV4_ROUTE_REDIRECT_SILENCE, "redirect_silence" },
187   - { NET_IPV4_ROUTE_ERROR_COST, "error_cost" },
188   - { NET_IPV4_ROUTE_ERROR_BURST, "error_burst" },
189   - { NET_IPV4_ROUTE_GC_ELASTICITY, "gc_elasticity" },
190   - { NET_IPV4_ROUTE_MTU_EXPIRES, "mtu_expires" },
191   - { NET_IPV4_ROUTE_MIN_PMTU, "min_pmtu" },
192   - { NET_IPV4_ROUTE_MIN_ADVMSS, "min_adv_mss" },
193   - { NET_IPV4_ROUTE_SECRET_INTERVAL, "secret_interval" },
194   - { NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS, "gc_min_interval_ms" },
195   - {}
196   -};
197   -
198   -static const struct trans_ctl_table trans_net_ipv4_conf_vars_table[] = {
199   - { NET_IPV4_CONF_FORWARDING, "forwarding" },
200   - { NET_IPV4_CONF_MC_FORWARDING, "mc_forwarding" },
201   -
202   - { NET_IPV4_CONF_PROXY_ARP, "proxy_arp" },
203   - { NET_IPV4_CONF_ACCEPT_REDIRECTS, "accept_redirects" },
204   - { NET_IPV4_CONF_SECURE_REDIRECTS, "secure_redirects" },
205   - { NET_IPV4_CONF_SEND_REDIRECTS, "send_redirects" },
206   - { NET_IPV4_CONF_SHARED_MEDIA, "shared_media" },
207   - { NET_IPV4_CONF_RP_FILTER, "rp_filter" },
208   - { NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE, "accept_source_route" },
209   - { NET_IPV4_CONF_BOOTP_RELAY, "bootp_relay" },
210   - { NET_IPV4_CONF_LOG_MARTIANS, "log_martians" },
211   - { NET_IPV4_CONF_TAG, "tag" },
212   - { NET_IPV4_CONF_ARPFILTER, "arp_filter" },
213   - { NET_IPV4_CONF_MEDIUM_ID, "medium_id" },
214   - { NET_IPV4_CONF_NOXFRM, "disable_xfrm" },
215   - { NET_IPV4_CONF_NOPOLICY, "disable_policy" },
216   - { NET_IPV4_CONF_FORCE_IGMP_VERSION, "force_igmp_version" },
217   -
218   - { NET_IPV4_CONF_ARP_ANNOUNCE, "arp_announce" },
219   - { NET_IPV4_CONF_ARP_IGNORE, "arp_ignore" },
220   - { NET_IPV4_CONF_PROMOTE_SECONDARIES, "promote_secondaries" },
221   - { NET_IPV4_CONF_ARP_ACCEPT, "arp_accept" },
222   - { NET_IPV4_CONF_ARP_NOTIFY, "arp_notify" },
223   - {}
224   -};
225   -
226   -static const struct trans_ctl_table trans_net_ipv4_conf_table[] = {
227   - { NET_PROTO_CONF_ALL, "all", trans_net_ipv4_conf_vars_table },
228   - { NET_PROTO_CONF_DEFAULT, "default", trans_net_ipv4_conf_vars_table },
229   - { 0, NULL, trans_net_ipv4_conf_vars_table },
230   - {}
231   -};
232   -
233   -static const struct trans_ctl_table trans_net_neigh_vars_table[] = {
234   - { NET_NEIGH_MCAST_SOLICIT, "mcast_solicit" },
235   - { NET_NEIGH_UCAST_SOLICIT, "ucast_solicit" },
236   - { NET_NEIGH_APP_SOLICIT, "app_solicit" },
237   - { NET_NEIGH_RETRANS_TIME, "retrans_time" },
238   - { NET_NEIGH_REACHABLE_TIME, "base_reachable_time" },
239   - { NET_NEIGH_DELAY_PROBE_TIME, "delay_first_probe_time" },
240   - { NET_NEIGH_GC_STALE_TIME, "gc_stale_time" },
241   - { NET_NEIGH_UNRES_QLEN, "unres_qlen" },
242   - { NET_NEIGH_PROXY_QLEN, "proxy_qlen" },
243   - { NET_NEIGH_ANYCAST_DELAY, "anycast_delay" },
244   - { NET_NEIGH_PROXY_DELAY, "proxy_delay" },
245   - { NET_NEIGH_LOCKTIME, "locktime" },
246   - { NET_NEIGH_GC_INTERVAL, "gc_interval" },
247   - { NET_NEIGH_GC_THRESH1, "gc_thresh1" },
248   - { NET_NEIGH_GC_THRESH2, "gc_thresh2" },
249   - { NET_NEIGH_GC_THRESH3, "gc_thresh3" },
250   - { NET_NEIGH_RETRANS_TIME_MS, "retrans_time_ms" },
251   - { NET_NEIGH_REACHABLE_TIME_MS, "base_reachable_time_ms" },
252   - {}
253   -};
254   -
255   -static const struct trans_ctl_table trans_net_neigh_table[] = {
256   - { NET_PROTO_CONF_DEFAULT, "default", trans_net_neigh_vars_table },
257   - { 0, NULL, trans_net_neigh_vars_table },
258   - {}
259   -};
260   -
261   -static const struct trans_ctl_table trans_net_ipv4_netfilter_table[] = {
262   - { NET_IPV4_NF_CONNTRACK_MAX, "ip_conntrack_max" },
263   -
264   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT, "ip_conntrack_tcp_timeout_syn_sent" },
265   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV, "ip_conntrack_tcp_timeout_syn_recv" },
266   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED, "ip_conntrack_tcp_timeout_established" },
267   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT, "ip_conntrack_tcp_timeout_fin_wait" },
268   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT, "ip_conntrack_tcp_timeout_close_wait" },
269   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK, "ip_conntrack_tcp_timeout_last_ack" },
270   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT, "ip_conntrack_tcp_timeout_time_wait" },
271   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE, "ip_conntrack_tcp_timeout_close" },
272   -
273   - { NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT, "ip_conntrack_udp_timeout" },
274   - { NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM, "ip_conntrack_udp_timeout_stream" },
275   - { NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT, "ip_conntrack_icmp_timeout" },
276   - { NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT, "ip_conntrack_generic_timeout" },
277   -
278   - { NET_IPV4_NF_CONNTRACK_BUCKETS, "ip_conntrack_buckets" },
279   - { NET_IPV4_NF_CONNTRACK_LOG_INVALID, "ip_conntrack_log_invalid" },
280   - { NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS, "ip_conntrack_tcp_timeout_max_retrans" },
281   - { NET_IPV4_NF_CONNTRACK_TCP_LOOSE, "ip_conntrack_tcp_loose" },
282   - { NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL, "ip_conntrack_tcp_be_liberal" },
283   - { NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS, "ip_conntrack_tcp_max_retrans" },
284   -
285   - { NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED, "ip_conntrack_sctp_timeout_closed" },
286   - { NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT, "ip_conntrack_sctp_timeout_cookie_wait" },
287   - { NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED, "ip_conntrack_sctp_timeout_cookie_echoed" },
288   - { NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED, "ip_conntrack_sctp_timeout_established" },
289   - { NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT, "ip_conntrack_sctp_timeout_shutdown_sent" },
290   - { NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD, "ip_conntrack_sctp_timeout_shutdown_recd" },
291   - { NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT, "ip_conntrack_sctp_timeout_shutdown_ack_sent" },
292   -
293   - { NET_IPV4_NF_CONNTRACK_COUNT, "ip_conntrack_count" },
294   - { NET_IPV4_NF_CONNTRACK_CHECKSUM, "ip_conntrack_checksum" },
295   - {}
296   -};
297   -
298   -static const struct trans_ctl_table trans_net_ipv4_table[] = {
299   - { NET_IPV4_FORWARD, "ip_forward" },
300   - { NET_IPV4_DYNADDR, "ip_dynaddr" },
301   -
302   - { NET_IPV4_CONF, "conf", trans_net_ipv4_conf_table },
303   - { NET_IPV4_NEIGH, "neigh", trans_net_neigh_table },
304   - { NET_IPV4_ROUTE, "route", trans_net_ipv4_route_table },
305   - /* NET_IPV4_FIB_HASH unused */
306   - { NET_IPV4_NETFILTER, "netfilter", trans_net_ipv4_netfilter_table },
307   -
308   - { NET_IPV4_TCP_TIMESTAMPS, "tcp_timestamps" },
309   - { NET_IPV4_TCP_WINDOW_SCALING, "tcp_window_scaling" },
310   - { NET_IPV4_TCP_SACK, "tcp_sack" },
311   - { NET_IPV4_TCP_RETRANS_COLLAPSE, "tcp_retrans_collapse" },
312   - { NET_IPV4_DEFAULT_TTL, "ip_default_ttl" },
313   - /* NET_IPV4_AUTOCONFIG unused */
314   - { NET_IPV4_NO_PMTU_DISC, "ip_no_pmtu_disc" },
315   - { NET_IPV4_TCP_SYN_RETRIES, "tcp_syn_retries" },
316   - { NET_IPV4_IPFRAG_HIGH_THRESH, "ipfrag_high_thresh" },
317   - { NET_IPV4_IPFRAG_LOW_THRESH, "ipfrag_low_thresh" },
318   - { NET_IPV4_IPFRAG_TIME, "ipfrag_time" },
319   - /* NET_IPV4_TCP_MAX_KA_PROBES unused */
320   - { NET_IPV4_TCP_KEEPALIVE_TIME, "tcp_keepalive_time" },
321   - { NET_IPV4_TCP_KEEPALIVE_PROBES, "tcp_keepalive_probes" },
322   - { NET_IPV4_TCP_RETRIES1, "tcp_retries1" },
323   - { NET_IPV4_TCP_RETRIES2, "tcp_retries2" },
324   - { NET_IPV4_TCP_FIN_TIMEOUT, "tcp_fin_timeout" },
325   - /* NET_IPV4_IP_MASQ_DEBUG unused */
326   - { NET_TCP_SYNCOOKIES, "tcp_syncookies" },
327   - { NET_TCP_STDURG, "tcp_stdurg" },
328   - { NET_TCP_RFC1337, "tcp_rfc1337" },
329   - /* NET_TCP_SYN_TAILDROP unused */
330   - { NET_TCP_MAX_SYN_BACKLOG, "tcp_max_syn_backlog" },
331   - { NET_IPV4_LOCAL_PORT_RANGE, "ip_local_port_range" },
332   - { NET_IPV4_ICMP_ECHO_IGNORE_ALL, "icmp_echo_ignore_all" },
333   - { NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS, "icmp_echo_ignore_broadcasts" },
334   - /* NET_IPV4_ICMP_SOURCEQUENCH_RATE unused */
335   - /* NET_IPV4_ICMP_DESTUNREACH_RATE unused */
336   - /* NET_IPV4_ICMP_TIMEEXCEED_RATE unused */
337   - /* NET_IPV4_ICMP_PARAMPROB_RATE unused */
338   - /* NET_IPV4_ICMP_ECHOREPLY_RATE unused */
339   - { NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES, "icmp_ignore_bogus_error_responses" },
340   - { NET_IPV4_IGMP_MAX_MEMBERSHIPS, "igmp_max_memberships" },
341   - { NET_TCP_TW_RECYCLE, "tcp_tw_recycle" },
342   - /* NET_IPV4_ALWAYS_DEFRAG unused */
343   - { NET_IPV4_TCP_KEEPALIVE_INTVL, "tcp_keepalive_intvl" },
344   - { NET_IPV4_INET_PEER_THRESHOLD, "inet_peer_threshold" },
345   - { NET_IPV4_INET_PEER_MINTTL, "inet_peer_minttl" },
346   - { NET_IPV4_INET_PEER_MAXTTL, "inet_peer_maxttl" },
347   - { NET_IPV4_INET_PEER_GC_MINTIME, "inet_peer_gc_mintime" },
348   - { NET_IPV4_INET_PEER_GC_MAXTIME, "inet_peer_gc_maxtime" },
349   - { NET_TCP_ORPHAN_RETRIES, "tcp_orphan_retries" },
350   - { NET_TCP_ABORT_ON_OVERFLOW, "tcp_abort_on_overflow" },
351   - { NET_TCP_SYNACK_RETRIES, "tcp_synack_retries" },
352   - { NET_TCP_MAX_ORPHANS, "tcp_max_orphans" },
353   - { NET_TCP_MAX_TW_BUCKETS, "tcp_max_tw_buckets" },
354   - { NET_TCP_FACK, "tcp_fack" },
355   - { NET_TCP_REORDERING, "tcp_reordering" },
356   - { NET_TCP_ECN, "tcp_ecn" },
357   - { NET_TCP_DSACK, "tcp_dsack" },
358   - { NET_TCP_MEM, "tcp_mem" },
359   - { NET_TCP_WMEM, "tcp_wmem" },
360   - { NET_TCP_RMEM, "tcp_rmem" },
361   - { NET_TCP_APP_WIN, "tcp_app_win" },
362   - { NET_TCP_ADV_WIN_SCALE, "tcp_adv_win_scale" },
363   - { NET_IPV4_NONLOCAL_BIND, "ip_nonlocal_bind" },
364   - { NET_IPV4_ICMP_RATELIMIT, "icmp_ratelimit" },
365   - { NET_IPV4_ICMP_RATEMASK, "icmp_ratemask" },
366   - { NET_TCP_TW_REUSE, "tcp_tw_reuse" },
367   - { NET_TCP_FRTO, "tcp_frto" },
368   - { NET_TCP_LOW_LATENCY, "tcp_low_latency" },
369   - { NET_IPV4_IPFRAG_SECRET_INTERVAL, "ipfrag_secret_interval" },
370   - { NET_IPV4_IGMP_MAX_MSF, "igmp_max_msf" },
371   - { NET_TCP_NO_METRICS_SAVE, "tcp_no_metrics_save" },
372   - /* NET_TCP_DEFAULT_WIN_SCALE unused */
373   - { NET_TCP_MODERATE_RCVBUF, "tcp_moderate_rcvbuf" },
374   - { NET_TCP_TSO_WIN_DIVISOR, "tcp_tso_win_divisor" },
375   - /* NET_TCP_BIC_BETA unused */
376   - { NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR, "icmp_errors_use_inbound_ifaddr" },
377   - { NET_TCP_CONG_CONTROL, "tcp_congestion_control" },
378   - { NET_TCP_ABC, "tcp_abc" },
379   - { NET_IPV4_IPFRAG_MAX_DIST, "ipfrag_max_dist" },
380   - { NET_TCP_MTU_PROBING, "tcp_mtu_probing" },
381   - { NET_TCP_BASE_MSS, "tcp_base_mss" },
382   - { NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS, "tcp_workaround_signed_windows" },
383   - { NET_TCP_DMA_COPYBREAK, "tcp_dma_copybreak" },
384   - { NET_TCP_SLOW_START_AFTER_IDLE, "tcp_slow_start_after_idle" },
385   - { NET_CIPSOV4_CACHE_ENABLE, "cipso_cache_enable" },
386   - { NET_CIPSOV4_CACHE_BUCKET_SIZE, "cipso_cache_bucket_size" },
387   - { NET_CIPSOV4_RBM_OPTFMT, "cipso_rbm_optfmt" },
388   - { NET_CIPSOV4_RBM_STRICTVALID, "cipso_rbm_strictvalid" },
389   - { NET_TCP_AVAIL_CONG_CONTROL, "tcp_available_congestion_control" },
390   - { NET_TCP_ALLOWED_CONG_CONTROL, "tcp_allowed_congestion_control" },
391   - { NET_TCP_MAX_SSTHRESH, "tcp_max_ssthresh" },
392   - { NET_TCP_FRTO_RESPONSE, "tcp_frto_response" },
393   - { 2088 /* NET_IPQ_QMAX */, "ip_queue_maxlen" },
394   - {}
395   -};
396   -
397   -static const struct trans_ctl_table trans_net_ipx_table[] = {
398   - { NET_IPX_PPROP_BROADCASTING, "ipx_pprop_broadcasting" },
399   - /* NET_IPX_FORWARDING unused */
400   - {}
401   -};
402   -
403   -static const struct trans_ctl_table trans_net_atalk_table[] = {
404   - { NET_ATALK_AARP_EXPIRY_TIME, "aarp-expiry-time" },
405   - { NET_ATALK_AARP_TICK_TIME, "aarp-tick-time" },
406   - { NET_ATALK_AARP_RETRANSMIT_LIMIT, "aarp-retransmit-limit" },
407   - { NET_ATALK_AARP_RESOLVE_TIME, "aarp-resolve-time" },
408   - {},
409   -};
410   -
411   -static const struct trans_ctl_table trans_net_netrom_table[] = {
412   - { NET_NETROM_DEFAULT_PATH_QUALITY, "default_path_quality" },
413   - { NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER, "obsolescence_count_initialiser" },
414   - { NET_NETROM_NETWORK_TTL_INITIALISER, "network_ttl_initialiser" },
415   - { NET_NETROM_TRANSPORT_TIMEOUT, "transport_timeout" },
416   - { NET_NETROM_TRANSPORT_MAXIMUM_TRIES, "transport_maximum_tries" },
417   - { NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY, "transport_acknowledge_delay" },
418   - { NET_NETROM_TRANSPORT_BUSY_DELAY, "transport_busy_delay" },
419   - { NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE, "transport_requested_window_size" },
420   - { NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT, "transport_no_activity_timeout" },
421   - { NET_NETROM_ROUTING_CONTROL, "routing_control" },
422   - { NET_NETROM_LINK_FAILS_COUNT, "link_fails_count" },
423   - { NET_NETROM_RESET, "reset" },
424   - {}
425   -};
426   -
427   -static const struct trans_ctl_table trans_net_ax25_param_table[] = {
428   - { NET_AX25_IP_DEFAULT_MODE, "ip_default_mode" },
429   - { NET_AX25_DEFAULT_MODE, "ax25_default_mode" },
430   - { NET_AX25_BACKOFF_TYPE, "backoff_type" },
431   - { NET_AX25_CONNECT_MODE, "connect_mode" },
432   - { NET_AX25_STANDARD_WINDOW, "standard_window_size" },
433   - { NET_AX25_EXTENDED_WINDOW, "extended_window_size" },
434   - { NET_AX25_T1_TIMEOUT, "t1_timeout" },
435   - { NET_AX25_T2_TIMEOUT, "t2_timeout" },
436   - { NET_AX25_T3_TIMEOUT, "t3_timeout" },
437   - { NET_AX25_IDLE_TIMEOUT, "idle_timeout" },
438   - { NET_AX25_N2, "maximum_retry_count" },
439   - { NET_AX25_PACLEN, "maximum_packet_length" },
440   - { NET_AX25_PROTOCOL, "protocol" },
441   - { NET_AX25_DAMA_SLAVE_TIMEOUT, "dama_slave_timeout" },
442   - {}
443   -};
444   -
445   -static const struct trans_ctl_table trans_net_ax25_table[] = {
446   - { 0, NULL, trans_net_ax25_param_table },
447   - {}
448   -};
449   -
450   -static const struct trans_ctl_table trans_net_bridge_table[] = {
451   - { NET_BRIDGE_NF_CALL_ARPTABLES, "bridge-nf-call-arptables" },
452   - { NET_BRIDGE_NF_CALL_IPTABLES, "bridge-nf-call-iptables" },
453   - { NET_BRIDGE_NF_CALL_IP6TABLES, "bridge-nf-call-ip6tables" },
454   - { NET_BRIDGE_NF_FILTER_VLAN_TAGGED, "bridge-nf-filter-vlan-tagged" },
455   - { NET_BRIDGE_NF_FILTER_PPPOE_TAGGED, "bridge-nf-filter-pppoe-tagged" },
456   - {}
457   -};
458   -
459   -static const struct trans_ctl_table trans_net_rose_table[] = {
460   - { NET_ROSE_RESTART_REQUEST_TIMEOUT, "restart_request_timeout" },
461   - { NET_ROSE_CALL_REQUEST_TIMEOUT, "call_request_timeout" },
462   - { NET_ROSE_RESET_REQUEST_TIMEOUT, "reset_request_timeout" },
463   - { NET_ROSE_CLEAR_REQUEST_TIMEOUT, "clear_request_timeout" },
464   - { NET_ROSE_ACK_HOLD_BACK_TIMEOUT, "acknowledge_hold_back_timeout" },
465   - { NET_ROSE_ROUTING_CONTROL, "routing_control" },
466   - { NET_ROSE_LINK_FAIL_TIMEOUT, "link_fail_timeout" },
467   - { NET_ROSE_MAX_VCS, "maximum_virtual_circuits" },
468   - { NET_ROSE_WINDOW_SIZE, "window_size" },
469   - { NET_ROSE_NO_ACTIVITY_TIMEOUT, "no_activity_timeout" },
470   - {}
471   -};
472   -
473   -static const struct trans_ctl_table trans_net_ipv6_conf_var_table[] = {
474   - { NET_IPV6_FORWARDING, "forwarding" },
475   - { NET_IPV6_HOP_LIMIT, "hop_limit" },
476   - { NET_IPV6_MTU, "mtu" },
477   - { NET_IPV6_ACCEPT_RA, "accept_ra" },
478   - { NET_IPV6_ACCEPT_REDIRECTS, "accept_redirects" },
479   - { NET_IPV6_AUTOCONF, "autoconf" },
480   - { NET_IPV6_DAD_TRANSMITS, "dad_transmits" },
481   - { NET_IPV6_RTR_SOLICITS, "router_solicitations" },
482   - { NET_IPV6_RTR_SOLICIT_INTERVAL, "router_solicitation_interval" },
483   - { NET_IPV6_RTR_SOLICIT_DELAY, "router_solicitation_delay" },
484   - { NET_IPV6_USE_TEMPADDR, "use_tempaddr" },
485   - { NET_IPV6_TEMP_VALID_LFT, "temp_valid_lft" },
486   - { NET_IPV6_TEMP_PREFERED_LFT, "temp_prefered_lft" },
487   - { NET_IPV6_REGEN_MAX_RETRY, "regen_max_retry" },
488   - { NET_IPV6_MAX_DESYNC_FACTOR, "max_desync_factor" },
489   - { NET_IPV6_MAX_ADDRESSES, "max_addresses" },
490   - { NET_IPV6_FORCE_MLD_VERSION, "force_mld_version" },
491   - { NET_IPV6_ACCEPT_RA_DEFRTR, "accept_ra_defrtr" },
492   - { NET_IPV6_ACCEPT_RA_PINFO, "accept_ra_pinfo" },
493   - { NET_IPV6_ACCEPT_RA_RTR_PREF, "accept_ra_rtr_pref" },
494   - { NET_IPV6_RTR_PROBE_INTERVAL, "router_probe_interval" },
495   - { NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN, "accept_ra_rt_info_max_plen" },
496   - { NET_IPV6_PROXY_NDP, "proxy_ndp" },
497   - { NET_IPV6_ACCEPT_SOURCE_ROUTE, "accept_source_route" },
498   - {}
499   -};
500   -
501   -static const struct trans_ctl_table trans_net_ipv6_conf_table[] = {
502   - { NET_PROTO_CONF_ALL, "all", trans_net_ipv6_conf_var_table },
503   - { NET_PROTO_CONF_DEFAULT, "default", trans_net_ipv6_conf_var_table },
504   - { 0, NULL, trans_net_ipv6_conf_var_table },
505   - {}
506   -};
507   -
508   -static const struct trans_ctl_table trans_net_ipv6_route_table[] = {
509   - { NET_IPV6_ROUTE_FLUSH, "flush" },
510   - { NET_IPV6_ROUTE_GC_THRESH, "gc_thresh" },
511   - { NET_IPV6_ROUTE_MAX_SIZE, "max_size" },
512   - { NET_IPV6_ROUTE_GC_MIN_INTERVAL, "gc_min_interval" },
513   - { NET_IPV6_ROUTE_GC_TIMEOUT, "gc_timeout" },
514   - { NET_IPV6_ROUTE_GC_INTERVAL, "gc_interval" },
515   - { NET_IPV6_ROUTE_GC_ELASTICITY, "gc_elasticity" },
516   - { NET_IPV6_ROUTE_MTU_EXPIRES, "mtu_expires" },
517   - { NET_IPV6_ROUTE_MIN_ADVMSS, "min_adv_mss" },
518   - { NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS, "gc_min_interval_ms" },
519   - {}
520   -};
521   -
522   -static const struct trans_ctl_table trans_net_ipv6_icmp_table[] = {
523   - { NET_IPV6_ICMP_RATELIMIT, "ratelimit" },
524   - {}
525   -};
526   -
527   -static const struct trans_ctl_table trans_net_ipv6_table[] = {
528   - { NET_IPV6_CONF, "conf", trans_net_ipv6_conf_table },
529   - { NET_IPV6_NEIGH, "neigh", trans_net_neigh_table },
530   - { NET_IPV6_ROUTE, "route", trans_net_ipv6_route_table },
531   - { NET_IPV6_ICMP, "icmp", trans_net_ipv6_icmp_table },
532   - { NET_IPV6_BINDV6ONLY, "bindv6only" },
533   - { NET_IPV6_IP6FRAG_HIGH_THRESH, "ip6frag_high_thresh" },
534   - { NET_IPV6_IP6FRAG_LOW_THRESH, "ip6frag_low_thresh" },
535   - { NET_IPV6_IP6FRAG_TIME, "ip6frag_time" },
536   - { NET_IPV6_IP6FRAG_SECRET_INTERVAL, "ip6frag_secret_interval" },
537   - { NET_IPV6_MLD_MAX_MSF, "mld_max_msf" },
538   - { 2088 /* IPQ_QMAX */, "ip6_queue_maxlen" },
539   - {}
540   -};
541   -
542   -static const struct trans_ctl_table trans_net_x25_table[] = {
543   - { NET_X25_RESTART_REQUEST_TIMEOUT, "restart_request_timeout" },
544   - { NET_X25_CALL_REQUEST_TIMEOUT, "call_request_timeout" },
545   - { NET_X25_RESET_REQUEST_TIMEOUT, "reset_request_timeout" },
546   - { NET_X25_CLEAR_REQUEST_TIMEOUT, "clear_request_timeout" },
547   - { NET_X25_ACK_HOLD_BACK_TIMEOUT, "acknowledgement_hold_back_timeout" },
548   - { NET_X25_FORWARD, "x25_forward" },
549   - {}
550   -};
551   -
552   -static const struct trans_ctl_table trans_net_tr_table[] = {
553   - { NET_TR_RIF_TIMEOUT, "rif_timeout" },
554   - {}
555   -};
556   -
557   -
558   -static const struct trans_ctl_table trans_net_decnet_conf_vars[] = {
559   - { NET_DECNET_CONF_DEV_FORWARDING, "forwarding" },
560   - { NET_DECNET_CONF_DEV_PRIORITY, "priority" },
561   - { NET_DECNET_CONF_DEV_T2, "t2" },
562   - { NET_DECNET_CONF_DEV_T3, "t3" },
563   - {}
564   -};
565   -
566   -static const struct trans_ctl_table trans_net_decnet_conf[] = {
567   - { 0, NULL, trans_net_decnet_conf_vars },
568   - {}
569   -};
570   -
571   -static const struct trans_ctl_table trans_net_decnet_table[] = {
572   - { NET_DECNET_CONF, "conf", trans_net_decnet_conf },
573   - { NET_DECNET_NODE_ADDRESS, "node_address" },
574   - { NET_DECNET_NODE_NAME, "node_name" },
575   - { NET_DECNET_DEFAULT_DEVICE, "default_device" },
576   - { NET_DECNET_TIME_WAIT, "time_wait" },
577   - { NET_DECNET_DN_COUNT, "dn_count" },
578   - { NET_DECNET_DI_COUNT, "di_count" },
579   - { NET_DECNET_DR_COUNT, "dr_count" },
580   - { NET_DECNET_DST_GC_INTERVAL, "dst_gc_interval" },
581   - { NET_DECNET_NO_FC_MAX_CWND, "no_fc_max_cwnd" },
582   - { NET_DECNET_MEM, "decnet_mem" },
583   - { NET_DECNET_RMEM, "decnet_rmem" },
584   - { NET_DECNET_WMEM, "decnet_wmem" },
585   - { NET_DECNET_DEBUG_LEVEL, "debug" },
586   - {}
587   -};
588   -
589   -static const struct trans_ctl_table trans_net_sctp_table[] = {
590   - { NET_SCTP_RTO_INITIAL, "rto_initial" },
591   - { NET_SCTP_RTO_MIN, "rto_min" },
592   - { NET_SCTP_RTO_MAX, "rto_max" },
593   - { NET_SCTP_RTO_ALPHA, "rto_alpha_exp_divisor" },
594   - { NET_SCTP_RTO_BETA, "rto_beta_exp_divisor" },
595   - { NET_SCTP_VALID_COOKIE_LIFE, "valid_cookie_life" },
596   - { NET_SCTP_ASSOCIATION_MAX_RETRANS, "association_max_retrans" },
597   - { NET_SCTP_PATH_MAX_RETRANS, "path_max_retrans" },
598   - { NET_SCTP_MAX_INIT_RETRANSMITS, "max_init_retransmits" },
599   - { NET_SCTP_HB_INTERVAL, "hb_interval" },
600   - { NET_SCTP_PRESERVE_ENABLE, "cookie_preserve_enable" },
601   - { NET_SCTP_MAX_BURST, "max_burst" },
602   - { NET_SCTP_ADDIP_ENABLE, "addip_enable" },
603   - { NET_SCTP_PRSCTP_ENABLE, "prsctp_enable" },
604   - { NET_SCTP_SNDBUF_POLICY, "sndbuf_policy" },
605   - { NET_SCTP_SACK_TIMEOUT, "sack_timeout" },
606   - { NET_SCTP_RCVBUF_POLICY, "rcvbuf_policy" },
607   - {}
608   -};
609   -
610   -static const struct trans_ctl_table trans_net_llc_llc2_timeout_table[] = {
611   - { NET_LLC2_ACK_TIMEOUT, "ack" },
612   - { NET_LLC2_P_TIMEOUT, "p" },
613   - { NET_LLC2_REJ_TIMEOUT, "rej" },
614   - { NET_LLC2_BUSY_TIMEOUT, "busy" },
615   - {}
616   -};
617   -
618   -static const struct trans_ctl_table trans_net_llc_station_table[] = {
619   - { NET_LLC_STATION_ACK_TIMEOUT, "ack_timeout" },
620   - {}
621   -};
622   -
623   -static const struct trans_ctl_table trans_net_llc_llc2_table[] = {
624   - { NET_LLC2, "timeout", trans_net_llc_llc2_timeout_table },
625   - {}
626   -};
627   -
628   -static const struct trans_ctl_table trans_net_llc_table[] = {
629   - { NET_LLC2, "llc2", trans_net_llc_llc2_table },
630   - { NET_LLC_STATION, "station", trans_net_llc_station_table },
631   - {}
632   -};
633   -
634   -static const struct trans_ctl_table trans_net_netfilter_table[] = {
635   - { NET_NF_CONNTRACK_MAX, "nf_conntrack_max" },
636   - { NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT, "nf_conntrack_tcp_timeout_syn_sent" },
637   - { NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV, "nf_conntrack_tcp_timeout_syn_recv" },
638   - { NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED, "nf_conntrack_tcp_timeout_established" },
639   - { NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT, "nf_conntrack_tcp_timeout_fin_wait" },
640   - { NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT, "nf_conntrack_tcp_timeout_close_wait" },
641   - { NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK, "nf_conntrack_tcp_timeout_last_ack" },
642   - { NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT, "nf_conntrack_tcp_timeout_time_wait" },
643   - { NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE, "nf_conntrack_tcp_timeout_close" },
644   - { NET_NF_CONNTRACK_UDP_TIMEOUT, "nf_conntrack_udp_timeout" },
645   - { NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM, "nf_conntrack_udp_timeout_stream" },
646   - { NET_NF_CONNTRACK_ICMP_TIMEOUT, "nf_conntrack_icmp_timeout" },
647   - { NET_NF_CONNTRACK_GENERIC_TIMEOUT, "nf_conntrack_generic_timeout" },
648   - { NET_NF_CONNTRACK_BUCKETS, "nf_conntrack_buckets" },
649   - { NET_NF_CONNTRACK_LOG_INVALID, "nf_conntrack_log_invalid" },
650   - { NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS, "nf_conntrack_tcp_timeout_max_retrans" },
651   - { NET_NF_CONNTRACK_TCP_LOOSE, "nf_conntrack_tcp_loose" },
652   - { NET_NF_CONNTRACK_TCP_BE_LIBERAL, "nf_conntrack_tcp_be_liberal" },
653   - { NET_NF_CONNTRACK_TCP_MAX_RETRANS, "nf_conntrack_tcp_max_retrans" },
654   - { NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED, "nf_conntrack_sctp_timeout_closed" },
655   - { NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT, "nf_conntrack_sctp_timeout_cookie_wait" },
656   - { NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED, "nf_conntrack_sctp_timeout_cookie_echoed" },
657   - { NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED, "nf_conntrack_sctp_timeout_established" },
658   - { NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT, "nf_conntrack_sctp_timeout_shutdown_sent" },
659   - { NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD, "nf_conntrack_sctp_timeout_shutdown_recd" },
660   - { NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT, "nf_conntrack_sctp_timeout_shutdown_ack_sent" },
661   - { NET_NF_CONNTRACK_COUNT, "nf_conntrack_count" },
662   - { NET_NF_CONNTRACK_ICMPV6_TIMEOUT, "nf_conntrack_icmpv6_timeout" },
663   - { NET_NF_CONNTRACK_FRAG6_TIMEOUT, "nf_conntrack_frag6_timeout" },
664   - { NET_NF_CONNTRACK_FRAG6_LOW_THRESH, "nf_conntrack_frag6_low_thresh" },
665   - { NET_NF_CONNTRACK_FRAG6_HIGH_THRESH, "nf_conntrack_frag6_high_thresh" },
666   - { NET_NF_CONNTRACK_CHECKSUM, "nf_conntrack_checksum" },
667   -
668   - {}
669   -};
670   -
671   -static const struct trans_ctl_table trans_net_dccp_table[] = {
672   - { NET_DCCP_DEFAULT, "default" },
673   - {}
674   -};
675   -
676   -static const struct trans_ctl_table trans_net_irda_table[] = {
677   - { NET_IRDA_DISCOVERY, "discovery" },
678   - { NET_IRDA_DEVNAME, "devname" },
679   - { NET_IRDA_DEBUG, "debug" },
680   - { NET_IRDA_FAST_POLL, "fast_poll_increase" },
681   - { NET_IRDA_DISCOVERY_SLOTS, "discovery_slots" },
682   - { NET_IRDA_DISCOVERY_TIMEOUT, "discovery_timeout" },
683   - { NET_IRDA_SLOT_TIMEOUT, "slot_timeout" },
684   - { NET_IRDA_MAX_BAUD_RATE, "max_baud_rate" },
685   - { NET_IRDA_MIN_TX_TURN_TIME, "min_tx_turn_time" },
686   - { NET_IRDA_MAX_TX_DATA_SIZE, "max_tx_data_size" },
687   - { NET_IRDA_MAX_TX_WINDOW, "max_tx_window" },
688   - { NET_IRDA_MAX_NOREPLY_TIME, "max_noreply_time" },
689   - { NET_IRDA_WARN_NOREPLY_TIME, "warn_noreply_time" },
690   - { NET_IRDA_LAP_KEEPALIVE_TIME, "lap_keepalive_time" },
691   - {}
692   -};
693   -
694   -static const struct trans_ctl_table trans_net_table[] = {
695   - { NET_CORE, "core", trans_net_core_table },
696   - /* NET_ETHER not used */
697   - /* NET_802 not used */
698   - { NET_UNIX, "unix", trans_net_unix_table },
699   - { NET_IPV4, "ipv4", trans_net_ipv4_table },
700   - { NET_IPX, "ipx", trans_net_ipx_table },
701   - { NET_ATALK, "appletalk", trans_net_atalk_table },
702   - { NET_NETROM, "netrom", trans_net_netrom_table },
703   - { NET_AX25, "ax25", trans_net_ax25_table },
704   - { NET_BRIDGE, "bridge", trans_net_bridge_table },
705   - { NET_ROSE, "rose", trans_net_rose_table },
706   - { NET_IPV6, "ipv6", trans_net_ipv6_table },
707   - { NET_X25, "x25", trans_net_x25_table },
708   - { NET_TR, "token-ring", trans_net_tr_table },
709   - { NET_DECNET, "decnet", trans_net_decnet_table },
710   - /* NET_ECONET not used */
711   - { NET_SCTP, "sctp", trans_net_sctp_table },
712   - { NET_LLC, "llc", trans_net_llc_table },
713   - { NET_NETFILTER, "netfilter", trans_net_netfilter_table },
714   - { NET_DCCP, "dccp", trans_net_dccp_table },
715   - { NET_IRDA, "irda", trans_net_irda_table },
716   - { 2089, "nf_conntrack_max" },
717   - {}
718   -};
719   -
720   -static const struct trans_ctl_table trans_fs_quota_table[] = {
721   - { FS_DQ_LOOKUPS, "lookups" },
722   - { FS_DQ_DROPS, "drops" },
723   - { FS_DQ_READS, "reads" },
724   - { FS_DQ_WRITES, "writes" },
725   - { FS_DQ_CACHE_HITS, "cache_hits" },
726   - { FS_DQ_ALLOCATED, "allocated_dquots" },
727   - { FS_DQ_FREE, "free_dquots" },
728   - { FS_DQ_SYNCS, "syncs" },
729   - { FS_DQ_WARNINGS, "warnings" },
730   - {}
731   -};
732   -
733   -static const struct trans_ctl_table trans_fs_xfs_table[] = {
734   - { XFS_SGID_INHERIT, "irix_sgid_inherit" },
735   - { XFS_SYMLINK_MODE, "irix_symlink_mode" },
736   - { XFS_PANIC_MASK, "panic_mask" },
737   -
738   - { XFS_ERRLEVEL, "error_level" },
739   - { XFS_SYNCD_TIMER, "xfssyncd_centisecs" },
740   - { XFS_INHERIT_SYNC, "inherit_sync" },
741   - { XFS_INHERIT_NODUMP, "inherit_nodump" },
742   - { XFS_INHERIT_NOATIME, "inherit_noatime" },
743   - { XFS_BUF_TIMER, "xfsbufd_centisecs" },
744   - { XFS_BUF_AGE, "age_buffer_centisecs" },
745   - { XFS_INHERIT_NOSYM, "inherit_nosymlinks" },
746   - { XFS_ROTORSTEP, "rotorstep" },
747   - { XFS_INHERIT_NODFRG, "inherit_nodefrag" },
748   - { XFS_FILESTREAM_TIMER, "filestream_centisecs" },
749   - { XFS_STATS_CLEAR, "stats_clear" },
750   - {}
751   -};
752   -
753   -static const struct trans_ctl_table trans_fs_ocfs2_nm_table[] = {
754   - { 1, "hb_ctl_path" },
755   - {}
756   -};
757   -
758   -static const struct trans_ctl_table trans_fs_ocfs2_table[] = {
759   - { 1, "nm", trans_fs_ocfs2_nm_table },
760   - {}
761   -};
762   -
763   -static const struct trans_ctl_table trans_inotify_table[] = {
764   - { INOTIFY_MAX_USER_INSTANCES, "max_user_instances" },
765   - { INOTIFY_MAX_USER_WATCHES, "max_user_watches" },
766   - { INOTIFY_MAX_QUEUED_EVENTS, "max_queued_events" },
767   - {}
768   -};
769   -
770   -static const struct trans_ctl_table trans_fs_table[] = {
771   - { FS_NRINODE, "inode-nr" },
772   - { FS_STATINODE, "inode-state" },
773   - /* FS_MAXINODE unused */
774   - /* FS_NRDQUOT unused */
775   - /* FS_MAXDQUOT unused */
776   - { FS_NRFILE, "file-nr" },
777   - { FS_MAXFILE, "file-max" },
778   - { FS_DENTRY, "dentry-state" },
779   - /* FS_NRSUPER unused */
780   - /* FS_MAXUPSER unused */
781   - { FS_OVERFLOWUID, "overflowuid" },
782   - { FS_OVERFLOWGID, "overflowgid" },
783   - { FS_LEASES, "leases-enable" },
784   - { FS_DIR_NOTIFY, "dir-notify-enable" },
785   - { FS_LEASE_TIME, "lease-break-time" },
786   - { FS_DQSTATS, "quota", trans_fs_quota_table },
787   - { FS_XFS, "xfs", trans_fs_xfs_table },
788   - { FS_AIO_NR, "aio-nr" },
789   - { FS_AIO_MAX_NR, "aio-max-nr" },
790   - { FS_INOTIFY, "inotify", trans_inotify_table },
791   - { FS_OCFS2, "ocfs2", trans_fs_ocfs2_table },
792   - { KERN_SETUID_DUMPABLE, "suid_dumpable" },
793   - {}
794   -};
795   -
796   -static const struct trans_ctl_table trans_debug_table[] = {
797   - {}
798   -};
799   -
800   -static const struct trans_ctl_table trans_cdrom_table[] = {
801   - { DEV_CDROM_INFO, "info" },
802   - { DEV_CDROM_AUTOCLOSE, "autoclose" },
803   - { DEV_CDROM_AUTOEJECT, "autoeject" },
804   - { DEV_CDROM_DEBUG, "debug" },
805   - { DEV_CDROM_LOCK, "lock" },
806   - { DEV_CDROM_CHECK_MEDIA, "check_media" },
807   - {}
808   -};
809   -
810   -static const struct trans_ctl_table trans_ipmi_table[] = {
811   - { DEV_IPMI_POWEROFF_POWERCYCLE, "poweroff_powercycle" },
812   - {}
813   -};
814   -
815   -static const struct trans_ctl_table trans_mac_hid_files[] = {
816   - /* DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES unused */
817   - /* DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES unused */
818   - { DEV_MAC_HID_MOUSE_BUTTON_EMULATION, "mouse_button_emulation" },
819   - { DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE, "mouse_button2_keycode" },
820   - { DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE, "mouse_button3_keycode" },
821   - /* DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES unused */
822   - {}
823   -};
824   -
825   -static const struct trans_ctl_table trans_raid_table[] = {
826   - { DEV_RAID_SPEED_LIMIT_MIN, "speed_limit_min" },
827   - { DEV_RAID_SPEED_LIMIT_MAX, "speed_limit_max" },
828   - {}
829   -};
830   -
831   -static const struct trans_ctl_table trans_scsi_table[] = {
832   - { DEV_SCSI_LOGGING_LEVEL, "logging_level" },
833   - {}
834   -};
835   -
836   -static const struct trans_ctl_table trans_parport_default_table[] = {
837   - { DEV_PARPORT_DEFAULT_TIMESLICE, "timeslice" },
838   - { DEV_PARPORT_DEFAULT_SPINTIME, "spintime" },
839   - {}
840   -};
841   -
842   -static const struct trans_ctl_table trans_parport_device_table[] = {
843   - { DEV_PARPORT_DEVICE_TIMESLICE, "timeslice" },
844   - {}
845   -};
846   -
847   -static const struct trans_ctl_table trans_parport_devices_table[] = {
848   - { DEV_PARPORT_DEVICES_ACTIVE, "active" },
849   - { 0, NULL, trans_parport_device_table },
850   - {}
851   -};
852   -
853   -static const struct trans_ctl_table trans_parport_parport_table[] = {
854   - { DEV_PARPORT_SPINTIME, "spintime" },
855   - { DEV_PARPORT_BASE_ADDR, "base-addr" },
856   - { DEV_PARPORT_IRQ, "irq" },
857   - { DEV_PARPORT_DMA, "dma" },
858   - { DEV_PARPORT_MODES, "modes" },
859   - { DEV_PARPORT_DEVICES, "devices", trans_parport_devices_table },
860   - { DEV_PARPORT_AUTOPROBE, "autoprobe" },
861   - { DEV_PARPORT_AUTOPROBE + 1, "autoprobe0" },
862   - { DEV_PARPORT_AUTOPROBE + 2, "autoprobe1" },
863   - { DEV_PARPORT_AUTOPROBE + 3, "autoprobe2" },
864   - { DEV_PARPORT_AUTOPROBE + 4, "autoprobe3" },
865   - {}
866   -};
867   -static const struct trans_ctl_table trans_parport_table[] = {
868   - { DEV_PARPORT_DEFAULT, "default", trans_parport_default_table },
869   - { 0, NULL, trans_parport_parport_table },
870   - {}
871   -};
872   -
873   -static const struct trans_ctl_table trans_dev_table[] = {
874   - { DEV_CDROM, "cdrom", trans_cdrom_table },
875   - /* DEV_HWMON unused */
876   - { DEV_PARPORT, "parport", trans_parport_table },
877   - { DEV_RAID, "raid", trans_raid_table },
878   - { DEV_MAC_HID, "mac_hid", trans_mac_hid_files },
879   - { DEV_SCSI, "scsi", trans_scsi_table },
880   - { DEV_IPMI, "ipmi", trans_ipmi_table },
881   - {}
882   -};
883   -
884   -static const struct trans_ctl_table trans_bus_isa_table[] = {
885   - { BUS_ISA_MEM_BASE, "membase" },
886   - { BUS_ISA_PORT_BASE, "portbase" },
887   - { BUS_ISA_PORT_SHIFT, "portshift" },
888   - {}
889   -};
890   -
891   -static const struct trans_ctl_table trans_bus_table[] = {
892   - { CTL_BUS_ISA, "isa", trans_bus_isa_table },
893   - {}
894   -};
895   -
896   -static const struct trans_ctl_table trans_arlan_conf_table0[] = {
897   - { 1, "spreadingCode" },
898   - { 2, "channelNumber" },
899   - { 3, "scramblingDisable" },
900   - { 4, "txAttenuation" },
901   - { 5, "systemId" },
902   - { 6, "maxDatagramSize" },
903   - { 7, "maxFrameSize" },
904   - { 8, "maxRetries" },
905   - { 9, "receiveMode" },
906   - { 10, "priority" },
907   - { 11, "rootOrRepeater" },
908   - { 12, "SID" },
909   - { 13, "registrationMode" },
910   - { 14, "registrationFill" },
911   - { 15, "localTalkAddress" },
912   - { 16, "codeFormat" },
913   - { 17, "numChannels" },
914   - { 18, "channel1" },
915   - { 19, "channel2" },
916   - { 20, "channel3" },
917   - { 21, "channel4" },
918   - { 22, "txClear" },
919   - { 23, "txRetries" },
920   - { 24, "txRouting" },
921   - { 25, "txScrambled" },
922   - { 26, "rxParameter" },
923   - { 27, "txTimeoutMs" },
924   - { 28, "waitCardTimeout" },
925   - { 29, "channelSet" },
926   - { 30, "name" },
927   - { 31, "waitTime" },
928   - { 32, "lParameter" },
929   - { 33, "_15" },
930   - { 34, "headerSize" },
931   - { 36, "tx_delay_ms" },
932   - { 37, "retries" },
933   - { 38, "ReTransmitPacketMaxSize" },
934   - { 39, "waitReTransmitPacketMaxSize" },
935   - { 40, "fastReTransCount" },
936   - { 41, "driverRetransmissions" },
937   - { 42, "txAckTimeoutMs" },
938   - { 43, "registrationInterrupts" },
939   - { 44, "hardwareType" },
940   - { 45, "radioType" },
941   - { 46, "writeEEPROM" },
942   - { 47, "writeRadioType" },
943   - { 48, "entry_exit_debug" },
944   - { 49, "debug" },
945   - { 50, "in_speed" },
946   - { 51, "out_speed" },
947   - { 52, "in_speed10" },
948   - { 53, "out_speed10" },
949   - { 54, "in_speed_max" },
950   - { 55, "out_speed_max" },
951   - { 56, "measure_rate" },
952   - { 57, "pre_Command_Wait" },
953   - { 58, "rx_tweak1" },
954   - { 59, "rx_tweak2" },
955   - { 60, "tx_queue_len" },
956   -
957   - { 150, "arlan0-txRing" },
958   - { 151, "arlan0-rxRing" },
959   - { 152, "arlan0-18" },
960   - { 153, "arlan0-ring" },
961   - { 154, "arlan0-shm-cpy" },
962   - { 155, "config0" },
963   - { 156, "reset0" },
964   - {}
965   -};
966   -
967   -static const struct trans_ctl_table trans_arlan_conf_table1[] = {
968   - { 1, "spreadingCode" },
969   - { 2, "channelNumber" },
970   - { 3, "scramblingDisable" },
971   - { 4, "txAttenuation" },
972   - { 5, "systemId" },
973   - { 6, "maxDatagramSize" },
974   - { 7, "maxFrameSize" },
975   - { 8, "maxRetries" },
976   - { 9, "receiveMode" },
977   - { 10, "priority" },
978   - { 11, "rootOrRepeater" },
979   - { 12, "SID" },
980   - { 13, "registrationMode" },
981   - { 14, "registrationFill" },
982   - { 15, "localTalkAddress" },
983   - { 16, "codeFormat" },
984   - { 17, "numChannels" },
985   - { 18, "channel1" },
986   - { 19, "channel2" },
987   - { 20, "channel3" },
988   - { 21, "channel4" },
989   - { 22, "txClear" },
990   - { 23, "txRetries" },
991   - { 24, "txRouting" },
992   - { 25, "txScrambled" },
993   - { 26, "rxParameter" },
994   - { 27, "txTimeoutMs" },
995   - { 28, "waitCardTimeout" },
996   - { 29, "channelSet" },
997   - { 30, "name" },
998   - { 31, "waitTime" },
999   - { 32, "lParameter" },
1000   - { 33, "_15" },
1001   - { 34, "headerSize" },
1002   - { 36, "tx_delay_ms" },
1003   - { 37, "retries" },
1004   - { 38, "ReTransmitPacketMaxSize" },
1005   - { 39, "waitReTransmitPacketMaxSize" },
1006   - { 40, "fastReTransCount" },
1007   - { 41, "driverRetransmissions" },
1008   - { 42, "txAckTimeoutMs" },
1009   - { 43, "registrationInterrupts" },
1010   - { 44, "hardwareType" },
1011   - { 45, "radioType" },
1012   - { 46, "writeEEPROM" },
1013   - { 47, "writeRadioType" },
1014   - { 48, "entry_exit_debug" },
1015   - { 49, "debug" },
1016   - { 50, "in_speed" },
1017   - { 51, "out_speed" },
1018   - { 52, "in_speed10" },
1019   - { 53, "out_speed10" },
1020   - { 54, "in_speed_max" },
1021   - { 55, "out_speed_max" },
1022   - { 56, "measure_rate" },
1023   - { 57, "pre_Command_Wait" },
1024   - { 58, "rx_tweak1" },
1025   - { 59, "rx_tweak2" },
1026   - { 60, "tx_queue_len" },
1027   -
1028   - { 150, "arlan1-txRing" },
1029   - { 151, "arlan1-rxRing" },
1030   - { 152, "arlan1-18" },
1031   - { 153, "arlan1-ring" },
1032   - { 154, "arlan1-shm-cpy" },
1033   - { 155, "config1" },
1034   - { 156, "reset1" },
1035   - {}
1036   -};
1037   -
1038   -static const struct trans_ctl_table trans_arlan_conf_table2[] = {
1039   - { 1, "spreadingCode" },
1040   - { 2, "channelNumber" },
1041   - { 3, "scramblingDisable" },
1042   - { 4, "txAttenuation" },
1043   - { 5, "systemId" },
1044   - { 6, "maxDatagramSize" },
1045   - { 7, "maxFrameSize" },
1046   - { 8, "maxRetries" },
1047   - { 9, "receiveMode" },
1048   - { 10, "priority" },
1049   - { 11, "rootOrRepeater" },
1050   - { 12, "SID" },
1051   - { 13, "registrationMode" },
1052   - { 14, "registrationFill" },
1053   - { 15, "localTalkAddress" },
1054   - { 16, "codeFormat" },
1055   - { 17, "numChannels" },
1056   - { 18, "channel1" },
1057   - { 19, "channel2" },
1058   - { 20, "channel3" },
1059   - { 21, "channel4" },
1060   - { 22, "txClear" },
1061   - { 23, "txRetries" },
1062   - { 24, "txRouting" },
1063   - { 25, "txScrambled" },
1064   - { 26, "rxParameter" },
1065   - { 27, "txTimeoutMs" },
1066   - { 28, "waitCardTimeout" },
1067   - { 29, "channelSet" },
1068   - { 30, "name" },
1069   - { 31, "waitTime" },
1070   - { 32, "lParameter" },
1071   - { 33, "_15" },
1072   - { 34, "headerSize" },
1073   - { 36, "tx_delay_ms" },
1074   - { 37, "retries" },
1075   - { 38, "ReTransmitPacketMaxSize" },
1076   - { 39, "waitReTransmitPacketMaxSize" },
1077   - { 40, "fastReTransCount" },
1078   - { 41, "driverRetransmissions" },
1079   - { 42, "txAckTimeoutMs" },
1080   - { 43, "registrationInterrupts" },
1081   - { 44, "hardwareType" },
1082   - { 45, "radioType" },
1083   - { 46, "writeEEPROM" },
1084   - { 47, "writeRadioType" },
1085   - { 48, "entry_exit_debug" },
1086   - { 49, "debug" },
1087   - { 50, "in_speed" },
1088   - { 51, "out_speed" },
1089   - { 52, "in_speed10" },
1090   - { 53, "out_speed10" },
1091   - { 54, "in_speed_max" },
1092   - { 55, "out_speed_max" },
1093   - { 56, "measure_rate" },
1094   - { 57, "pre_Command_Wait" },
1095   - { 58, "rx_tweak1" },
1096   - { 59, "rx_tweak2" },
1097   - { 60, "tx_queue_len" },
1098   -
1099   - { 150, "arlan2-txRing" },
1100   - { 151, "arlan2-rxRing" },
1101   - { 152, "arlan2-18" },
1102   - { 153, "arlan2-ring" },
1103   - { 154, "arlan2-shm-cpy" },
1104   - { 155, "config2" },
1105   - { 156, "reset2" },
1106   - {}
1107   -};
1108   -
1109   -static const struct trans_ctl_table trans_arlan_conf_table3[] = {
1110   - { 1, "spreadingCode" },
1111   - { 2, "channelNumber" },
1112   - { 3, "scramblingDisable" },
1113   - { 4, "txAttenuation" },
1114   - { 5, "systemId" },
1115   - { 6, "maxDatagramSize" },
1116   - { 7, "maxFrameSize" },
1117   - { 8, "maxRetries" },
1118   - { 9, "receiveMode" },
1119   - { 10, "priority" },
1120   - { 11, "rootOrRepeater" },
1121   - { 12, "SID" },
1122   - { 13, "registrationMode" },
1123   - { 14, "registrationFill" },
1124   - { 15, "localTalkAddress" },
1125   - { 16, "codeFormat" },
1126   - { 17, "numChannels" },
1127   - { 18, "channel1" },
1128   - { 19, "channel2" },
1129   - { 20, "channel3" },
1130   - { 21, "channel4" },
1131   - { 22, "txClear" },
1132   - { 23, "txRetries" },
1133   - { 24, "txRouting" },
1134   - { 25, "txScrambled" },
1135   - { 26, "rxParameter" },
1136   - { 27, "txTimeoutMs" },
1137   - { 28, "waitCardTimeout" },
1138   - { 29, "channelSet" },
1139   - { 30, "name" },
1140   - { 31, "waitTime" },
1141   - { 32, "lParameter" },
1142   - { 33, "_15" },
1143   - { 34, "headerSize" },
1144   - { 36, "tx_delay_ms" },
1145   - { 37, "retries" },
1146   - { 38, "ReTransmitPacketMaxSize" },
1147   - { 39, "waitReTransmitPacketMaxSize" },
1148   - { 40, "fastReTransCount" },
1149   - { 41, "driverRetransmissions" },
1150   - { 42, "txAckTimeoutMs" },
1151   - { 43, "registrationInterrupts" },
1152   - { 44, "hardwareType" },
1153   - { 45, "radioType" },
1154   - { 46, "writeEEPROM" },
1155   - { 47, "writeRadioType" },
1156   - { 48, "entry_exit_debug" },
1157   - { 49, "debug" },
1158   - { 50, "in_speed" },
1159   - { 51, "out_speed" },
1160   - { 52, "in_speed10" },
1161   - { 53, "out_speed10" },
1162   - { 54, "in_speed_max" },
1163   - { 55, "out_speed_max" },
1164   - { 56, "measure_rate" },
1165   - { 57, "pre_Command_Wait" },
1166   - { 58, "rx_tweak1" },
1167   - { 59, "rx_tweak2" },
1168   - { 60, "tx_queue_len" },
1169   -
1170   - { 150, "arlan3-txRing" },
1171   - { 151, "arlan3-rxRing" },
1172   - { 152, "arlan3-18" },
1173   - { 153, "arlan3-ring" },
1174   - { 154, "arlan3-shm-cpy" },
1175   - { 155, "config3" },
1176   - { 156, "reset3" },
1177   - {}
1178   -};
1179   -
1180   -static const struct trans_ctl_table trans_arlan_table[] = {
1181   - { 1, "arlan0", trans_arlan_conf_table0 },
1182   - { 2, "arlan1", trans_arlan_conf_table1 },
1183   - { 3, "arlan2", trans_arlan_conf_table2 },
1184   - { 4, "arlan3", trans_arlan_conf_table3 },
1185   - {}
1186   -};
1187   -
1188   -static const struct trans_ctl_table trans_s390dbf_table[] = {
1189   - { 5678 /* CTL_S390DBF_STOPPABLE */, "debug_stoppable" },
1190   - { 5679 /* CTL_S390DBF_ACTIVE */, "debug_active" },
1191   - {}
1192   -};
1193   -
1194   -static const struct trans_ctl_table trans_sunrpc_table[] = {
1195   - { CTL_RPCDEBUG, "rpc_debug" },
1196   - { CTL_NFSDEBUG, "nfs_debug" },
1197   - { CTL_NFSDDEBUG, "nfsd_debug" },
1198   - { CTL_NLMDEBUG, "nlm_debug" },
1199   - { CTL_SLOTTABLE_UDP, "udp_slot_table_entries" },
1200   - { CTL_SLOTTABLE_TCP, "tcp_slot_table_entries" },
1201   - { CTL_MIN_RESVPORT, "min_resvport" },
1202   - { CTL_MAX_RESVPORT, "max_resvport" },
1203   - {}
1204   -};
1205   -
1206   -static const struct trans_ctl_table trans_pm_table[] = {
1207   - { 1 /* CTL_PM_SUSPEND */, "suspend" },
1208   - { 2 /* CTL_PM_CMODE */, "cmode" },
1209   - { 3 /* CTL_PM_P0 */, "p0" },
1210   - { 4 /* CTL_PM_CM */, "cm" },
1211   - {}
1212   -};
1213   -
1214   -static const struct trans_ctl_table trans_frv_table[] = {
1215   - { 1, "cache-mode" },
1216   - { 2, "pin-cxnr" },
1217   - {}
1218   -};
1219   -
1220   -static const struct trans_ctl_table trans_root_table[] = {
1221   - { CTL_KERN, "kernel", trans_kern_table },
1222   - { CTL_VM, "vm", trans_vm_table },
1223   - { CTL_NET, "net", trans_net_table },
1224   - /* CTL_PROC not used */
1225   - { CTL_FS, "fs", trans_fs_table },
1226   - { CTL_DEBUG, "debug", trans_debug_table },
1227   - { CTL_DEV, "dev", trans_dev_table },
1228   - { CTL_BUS, "bus", trans_bus_table },
1229   - { CTL_ABI, "abi" },
1230   - /* CTL_CPU not used */
1231   - { CTL_ARLAN, "arlan", trans_arlan_table },
1232   - { CTL_S390DBF, "s390dbf", trans_s390dbf_table },
1233   - { CTL_SUNRPC, "sunrpc", trans_sunrpc_table },
1234   - { CTL_PM, "pm", trans_pm_table },
1235   - { CTL_FRV, "frv", trans_frv_table },
1236   - {}
1237   -};
1238   -
1239   -
1240   -
1241   -
1242 9 static int sysctl_depth(struct ctl_table *table)
1243 10 {
1244 11 struct ctl_table *tmp;
1245 12  
... ... @@ -1261,48 +28,7 @@
1261 28 return table;
1262 29 }
1263 30  
1264   -static const struct trans_ctl_table *sysctl_binary_lookup(struct ctl_table *table)
1265   -{
1266   - struct ctl_table *test;
1267   - const struct trans_ctl_table *ref;
1268   - int cur_depth;
1269 31  
1270   - cur_depth = sysctl_depth(table);
1271   -
1272   - ref = trans_root_table;
1273   -repeat:
1274   - test = sysctl_parent(table, cur_depth);
1275   - for (; ref->ctl_name || ref->procname || ref->child; ref++) {
1276   - int match = 0;
1277   -
1278   - if (cur_depth && !ref->child)
1279   - continue;
1280   -
1281   - if (test->procname && ref->procname &&
1282   - (strcmp(test->procname, ref->procname) == 0))
1283   - match++;
1284   -
1285   - if (test->ctl_name && ref->ctl_name &&
1286   - (test->ctl_name == ref->ctl_name))
1287   - match++;
1288   -
1289   - if (!ref->ctl_name && !ref->procname)
1290   - match++;
1291   -
1292   - if (match) {
1293   - if (cur_depth != 0) {
1294   - cur_depth--;
1295   - ref = ref->child;
1296   - goto repeat;
1297   - }
1298   - goto out;
1299   - }
1300   - }
1301   - ref = NULL;
1302   -out:
1303   - return ref;
1304   -}
1305   -
1306 32 static void sysctl_print_path(struct ctl_table *table)
1307 33 {
1308 34 struct ctl_table *tmp;
1309 35  
... ... @@ -1315,28 +41,8 @@
1315 41 }
1316 42 }
1317 43 printk(" ");
1318   - if (table->ctl_name) {
1319   - for (i = depth; i >= 0; i--) {
1320   - tmp = sysctl_parent(table, i);
1321   - printk(".%d", tmp->ctl_name);
1322   - }
1323   - }
1324 44 }
1325 45  
1326   -static void sysctl_repair_table(struct ctl_table *table)
1327   -{
1328   - /* Don't complain about the classic default
1329   - * sysctl strategy routine. Maybe later we
1330   - * can get the tables fixed and complain about
1331   - * this.
1332   - */
1333   - if (table->ctl_name && table->procname &&
1334   - (table->proc_handler == proc_dointvec) &&
1335   - (!table->strategy)) {
1336   - table->strategy = sysctl_data;
1337   - }
1338   -}
1339   -
1340 46 static struct ctl_table *sysctl_check_lookup(struct nsproxy *namespaces,
1341 47 struct ctl_table *table)
1342 48 {
... ... @@ -1352,7 +58,7 @@
1352 58 ref = head->ctl_table;
1353 59 repeat:
1354 60 test = sysctl_parent(table, cur_depth);
1355   - for (; ref->ctl_name || ref->procname; ref++) {
  61 + for (; ref->procname; ref++) {
1356 62 int match = 0;
1357 63 if (cur_depth && !ref->child)
1358 64 continue;
... ... @@ -1361,10 +67,6 @@
1361 67 (strcmp(test->procname, ref->procname) == 0))
1362 68 match++;
1363 69  
1364   - if (test->ctl_name && ref->ctl_name &&
1365   - (test->ctl_name == ref->ctl_name))
1366   - match++;
1367   -
1368 70 if (match) {
1369 71 if (cur_depth != 0) {
1370 72 cur_depth--;
... ... @@ -1392,38 +94,6 @@
1392 94 *fail = str;
1393 95 }
1394 96  
1395   -static int sysctl_check_dir(struct nsproxy *namespaces,
1396   - struct ctl_table *table)
1397   -{
1398   - struct ctl_table *ref;
1399   - int error;
1400   -
1401   - error = 0;
1402   - ref = sysctl_check_lookup(namespaces, table);
1403   - if (ref) {
1404   - int match = 0;
1405   - if ((!table->procname && !ref->procname) ||
1406   - (table->procname && ref->procname &&
1407   - (strcmp(table->procname, ref->procname) == 0)))
1408   - match++;
1409   -
1410   - if ((!table->ctl_name && !ref->ctl_name) ||
1411   - (table->ctl_name && ref->ctl_name &&
1412   - (table->ctl_name == ref->ctl_name)))
1413   - match++;
1414   -
1415   - if (match != 2) {
1416   - printk(KERN_ERR "%s: failed: ", __func__);
1417   - sysctl_print_path(table);
1418   - printk(" ref: ");
1419   - sysctl_print_path(ref);
1420   - printk("\n");
1421   - error = -EINVAL;
1422   - }
1423   - }
1424   - return error;
1425   -}
1426   -
1427 97 static void sysctl_check_leaf(struct nsproxy *namespaces,
1428 98 struct ctl_table *table, const char **fail)
1429 99 {
1430 100  
1431 101  
1432 102  
... ... @@ -1434,37 +104,15 @@
1434 104 set_fail(fail, table, "Sysctl already exists");
1435 105 }
1436 106  
1437   -static void sysctl_check_bin_path(struct ctl_table *table, const char **fail)
1438   -{
1439   - const struct trans_ctl_table *ref;
1440   -
1441   - ref = sysctl_binary_lookup(table);
1442   - if (table->ctl_name && !ref)
1443   - set_fail(fail, table, "Unknown sysctl binary path");
1444   - if (ref) {
1445   - if (ref->procname &&
1446   - (!table->procname ||
1447   - (strcmp(table->procname, ref->procname) != 0)))
1448   - set_fail(fail, table, "procname does not match binary path procname");
1449   -
1450   - if (ref->ctl_name && table->ctl_name &&
1451   - (table->ctl_name != ref->ctl_name))
1452   - set_fail(fail, table, "ctl_name does not match binary path ctl_name");
1453   - }
1454   -}
1455   -
1456 107 int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table)
1457 108 {
1458 109 int error = 0;
1459   - for (; table->ctl_name || table->procname; table++) {
  110 + for (; table->procname; table++) {
1460 111 const char *fail = NULL;
1461 112  
1462   - sysctl_repair_table(table);
1463 113 if (table->parent) {
1464 114 if (table->procname && !table->parent->procname)
1465 115 set_fail(&fail, table, "Parent without procname");
1466   - if (table->ctl_name && !table->parent->ctl_name)
1467   - set_fail(&fail, table, "Parent without ctl_name");
1468 116 }
1469 117 if (!table->procname)
1470 118 set_fail(&fail, table, "No procname");
1471 119  
1472 120  
... ... @@ -1477,21 +125,12 @@
1477 125 set_fail(&fail, table, "Writable sysctl directory");
1478 126 if (table->proc_handler)
1479 127 set_fail(&fail, table, "Directory with proc_handler");
1480   - if (table->strategy)
1481   - set_fail(&fail, table, "Directory with strategy");
1482 128 if (table->extra1)
1483 129 set_fail(&fail, table, "Directory with extra1");
1484 130 if (table->extra2)
1485 131 set_fail(&fail, table, "Directory with extra2");
1486   - if (sysctl_check_dir(namespaces, table))
1487   - set_fail(&fail, table, "Inconsistent directory names");
1488 132 } else {
1489   - if ((table->strategy == sysctl_data) ||
1490   - (table->strategy == sysctl_string) ||
1491   - (table->strategy == sysctl_intvec) ||
1492   - (table->strategy == sysctl_jiffies) ||
1493   - (table->strategy == sysctl_ms_jiffies) ||
1494   - (table->proc_handler == proc_dostring) ||
  133 + if ((table->proc_handler == proc_dostring) ||
1495 134 (table->proc_handler == proc_dointvec) ||
1496 135 (table->proc_handler == proc_dointvec_minmax) ||
1497 136 (table->proc_handler == proc_dointvec_jiffies) ||
... ... @@ -1513,14 +152,6 @@
1513 152 set_fail(&fail, table, "No max");
1514 153 }
1515 154 }
1516   -#ifdef CONFIG_SYSCTL_SYSCALL
1517   - if (table->ctl_name && !table->strategy)
1518   - set_fail(&fail, table, "Missing strategy");
1519   -#endif
1520   -#if 0
1521   - if (!table->ctl_name && table->strategy)
1522   - set_fail(&fail, table, "Strategy without ctl_name");
1523   -#endif
1524 155 #ifdef CONFIG_PROC_SYSCTL
1525 156 if (table->procname && !table->proc_handler)
1526 157 set_fail(&fail, table, "No proc_handler");
... ... @@ -1531,7 +162,6 @@
1531 162 #endif
1532 163 sysctl_check_leaf(namespaces, table, &fail);
1533 164 }
1534   - sysctl_check_bin_path(table, &fail);
1535 165 if (table->mode > 0777)
1536 166 set_fail(&fail, table, "bogus .mode");
1537 167 if (fail) {
... ... @@ -912,7 +912,7 @@
912 912  
913 913 config SYSCTL_SYSCALL_CHECK
914 914 bool "Sysctl checks"
915   - depends on SYSCTL_SYSCALL
  915 + depends on SYSCTL
916 916 ---help---
917 917 sys_sysctl uses binary paths that have been found challenging
918 918 to properly maintain and use. This enables checks that help