Merge remote-tracking branches 'spi/fix/pxa2xx', 'spi/fix/qup' and 'spi/fix/sh-sci...
[sfrench/cifs-2.6.git] / security / keys / sysctl.c
1 /* Key management controls
2  *
3  * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4  * Written by David Howells (dhowells@redhat.com)
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public Licence
8  * as published by the Free Software Foundation; either version
9  * 2 of the Licence, or (at your option) any later version.
10  */
11
12 #include <linux/key.h>
13 #include <linux/sysctl.h>
14 #include "internal.h"
15
16 static const int zero, one = 1, max = INT_MAX;
17
18 struct ctl_table key_sysctls[] = {
19         {
20                 .procname = "maxkeys",
21                 .data = &key_quota_maxkeys,
22                 .maxlen = sizeof(unsigned),
23                 .mode = 0644,
24                 .proc_handler = proc_dointvec_minmax,
25                 .extra1 = (void *) &one,
26                 .extra2 = (void *) &max,
27         },
28         {
29                 .procname = "maxbytes",
30                 .data = &key_quota_maxbytes,
31                 .maxlen = sizeof(unsigned),
32                 .mode = 0644,
33                 .proc_handler = proc_dointvec_minmax,
34                 .extra1 = (void *) &one,
35                 .extra2 = (void *) &max,
36         },
37         {
38                 .procname = "root_maxkeys",
39                 .data = &key_quota_root_maxkeys,
40                 .maxlen = sizeof(unsigned),
41                 .mode = 0644,
42                 .proc_handler = proc_dointvec_minmax,
43                 .extra1 = (void *) &one,
44                 .extra2 = (void *) &max,
45         },
46         {
47                 .procname = "root_maxbytes",
48                 .data = &key_quota_root_maxbytes,
49                 .maxlen = sizeof(unsigned),
50                 .mode = 0644,
51                 .proc_handler = proc_dointvec_minmax,
52                 .extra1 = (void *) &one,
53                 .extra2 = (void *) &max,
54         },
55         {
56                 .procname = "gc_delay",
57                 .data = &key_gc_delay,
58                 .maxlen = sizeof(unsigned),
59                 .mode = 0644,
60                 .proc_handler = proc_dointvec_minmax,
61                 .extra1 = (void *) &zero,
62                 .extra2 = (void *) &max,
63         },
64 #ifdef CONFIG_PERSISTENT_KEYRINGS
65         {
66                 .procname = "persistent_keyring_expiry",
67                 .data = &persistent_keyring_expiry,
68                 .maxlen = sizeof(unsigned),
69                 .mode = 0644,
70                 .proc_handler = proc_dointvec_minmax,
71                 .extra1 = (void *) &zero,
72                 .extra2 = (void *) &max,
73         },
74 #endif
75         { }
76 };