@@ -88,7 +88,7 @@ static DEFINE_SPINLOCK(sysctl_lock);
88
88
89
89
static void drop_sysctl_table (struct ctl_table_header * header );
90
90
static int sysctl_follow_link (struct ctl_table_header * * phead ,
91
- struct ctl_table * * pentry );
91
+ const struct ctl_table * * pentry );
92
92
static int insert_links (struct ctl_table_header * head );
93
93
static void put_links (struct ctl_table_header * header );
94
94
@@ -110,11 +110,11 @@ static int namecmp(const char *name1, int len1, const char *name2, int len2)
110
110
}
111
111
112
112
/* Called under sysctl_lock */
113
- static struct ctl_table * find_entry (struct ctl_table_header * * phead ,
113
+ static const struct ctl_table * find_entry (struct ctl_table_header * * phead ,
114
114
struct ctl_dir * dir , const char * name , int namelen )
115
115
{
116
116
struct ctl_table_header * head ;
117
- struct ctl_table * entry ;
117
+ const struct ctl_table * entry ;
118
118
struct rb_node * node = dir -> root .rb_node ;
119
119
120
120
while (node )
@@ -141,7 +141,7 @@ static struct ctl_table *find_entry(struct ctl_table_header **phead,
141
141
return NULL ;
142
142
}
143
143
144
- static int insert_entry (struct ctl_table_header * head , struct ctl_table * entry )
144
+ static int insert_entry (struct ctl_table_header * head , const struct ctl_table * entry )
145
145
{
146
146
struct rb_node * node = & head -> node [entry - head -> ctl_table ].node ;
147
147
struct rb_node * * p = & head -> parent -> root .rb_node ;
@@ -151,7 +151,7 @@ static int insert_entry(struct ctl_table_header *head, struct ctl_table *entry)
151
151
152
152
while (* p ) {
153
153
struct ctl_table_header * parent_head ;
154
- struct ctl_table * parent_entry ;
154
+ const struct ctl_table * parent_entry ;
155
155
struct ctl_node * parent_node ;
156
156
const char * parent_name ;
157
157
int cmp ;
@@ -180,7 +180,7 @@ static int insert_entry(struct ctl_table_header *head, struct ctl_table *entry)
180
180
return 0 ;
181
181
}
182
182
183
- static void erase_entry (struct ctl_table_header * head , struct ctl_table * entry )
183
+ static void erase_entry (struct ctl_table_header * head , const struct ctl_table * entry )
184
184
{
185
185
struct rb_node * node = & head -> node [entry - head -> ctl_table ].node ;
186
186
@@ -189,7 +189,7 @@ static void erase_entry(struct ctl_table_header *head, struct ctl_table *entry)
189
189
190
190
static void init_header (struct ctl_table_header * head ,
191
191
struct ctl_table_root * root , struct ctl_table_set * set ,
192
- struct ctl_node * node , struct ctl_table * table , size_t table_size )
192
+ struct ctl_node * node , const struct ctl_table * table , size_t table_size )
193
193
{
194
194
head -> ctl_table = table ;
195
195
head -> ctl_table_size = table_size ;
@@ -204,7 +204,7 @@ static void init_header(struct ctl_table_header *head,
204
204
head -> node = node ;
205
205
INIT_HLIST_HEAD (& head -> inodes );
206
206
if (node ) {
207
- struct ctl_table * entry ;
207
+ const struct ctl_table * entry ;
208
208
209
209
list_for_each_table_entry (entry , head ) {
210
210
node -> header = head ;
@@ -217,15 +217,15 @@ static void init_header(struct ctl_table_header *head,
217
217
218
218
static void erase_header (struct ctl_table_header * head )
219
219
{
220
- struct ctl_table * entry ;
220
+ const struct ctl_table * entry ;
221
221
222
222
list_for_each_table_entry (entry , head )
223
223
erase_entry (head , entry );
224
224
}
225
225
226
226
static int insert_header (struct ctl_dir * dir , struct ctl_table_header * header )
227
227
{
228
- struct ctl_table * entry ;
228
+ const struct ctl_table * entry ;
229
229
struct ctl_table_header * dir_h = & dir -> header ;
230
230
int err ;
231
231
@@ -344,12 +344,12 @@ lookup_header_set(struct ctl_table_root *root)
344
344
return set ;
345
345
}
346
346
347
- static struct ctl_table * lookup_entry (struct ctl_table_header * * phead ,
348
- struct ctl_dir * dir ,
349
- const char * name , int namelen )
347
+ static const struct ctl_table * lookup_entry (struct ctl_table_header * * phead ,
348
+ struct ctl_dir * dir ,
349
+ const char * name , int namelen )
350
350
{
351
351
struct ctl_table_header * head ;
352
- struct ctl_table * entry ;
352
+ const struct ctl_table * entry ;
353
353
354
354
spin_lock (& sysctl_lock );
355
355
entry = find_entry (& head , dir , name , namelen );
@@ -374,10 +374,10 @@ static struct ctl_node *first_usable_entry(struct rb_node *node)
374
374
}
375
375
376
376
static void first_entry (struct ctl_dir * dir ,
377
- struct ctl_table_header * * phead , struct ctl_table * * pentry )
377
+ struct ctl_table_header * * phead , const struct ctl_table * * pentry )
378
378
{
379
379
struct ctl_table_header * head = NULL ;
380
- struct ctl_table * entry = NULL ;
380
+ const struct ctl_table * entry = NULL ;
381
381
struct ctl_node * ctl_node ;
382
382
383
383
spin_lock (& sysctl_lock );
@@ -391,10 +391,10 @@ static void first_entry(struct ctl_dir *dir,
391
391
* pentry = entry ;
392
392
}
393
393
394
- static void next_entry (struct ctl_table_header * * phead , struct ctl_table * * pentry )
394
+ static void next_entry (struct ctl_table_header * * phead , const struct ctl_table * * pentry )
395
395
{
396
396
struct ctl_table_header * head = * phead ;
397
- struct ctl_table * entry = * pentry ;
397
+ const struct ctl_table * entry = * pentry ;
398
398
struct ctl_node * ctl_node = & head -> node [entry - head -> ctl_table ];
399
399
400
400
spin_lock (& sysctl_lock );
@@ -427,7 +427,7 @@ static int test_perm(int mode, int op)
427
427
return - EACCES ;
428
428
}
429
429
430
- static int sysctl_perm (struct ctl_table_header * head , struct ctl_table * table , int op )
430
+ static int sysctl_perm (struct ctl_table_header * head , const struct ctl_table * table , int op )
431
431
{
432
432
struct ctl_table_root * root = head -> root ;
433
433
int mode ;
@@ -441,7 +441,7 @@ static int sysctl_perm(struct ctl_table_header *head, struct ctl_table *table, i
441
441
}
442
442
443
443
static struct inode * proc_sys_make_inode (struct super_block * sb ,
444
- struct ctl_table_header * head , struct ctl_table * table )
444
+ struct ctl_table_header * head , const struct ctl_table * table )
445
445
{
446
446
struct ctl_table_root * root = head -> root ;
447
447
struct inode * inode ;
@@ -512,7 +512,7 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
512
512
struct ctl_table_header * head = grab_header (dir );
513
513
struct ctl_table_header * h = NULL ;
514
514
const struct qstr * name = & dentry -> d_name ;
515
- struct ctl_table * p ;
515
+ const struct ctl_table * p ;
516
516
struct inode * inode ;
517
517
struct dentry * err = ERR_PTR (- ENOENT );
518
518
struct ctl_dir * ctl_dir ;
@@ -550,7 +550,7 @@ static ssize_t proc_sys_call_handler(struct kiocb *iocb, struct iov_iter *iter,
550
550
{
551
551
struct inode * inode = file_inode (iocb -> ki_filp );
552
552
struct ctl_table_header * head = grab_header (inode );
553
- struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
553
+ const struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
554
554
size_t count = iov_iter_count (iter );
555
555
char * kbuf ;
556
556
ssize_t error ;
@@ -624,7 +624,7 @@ static ssize_t proc_sys_write(struct kiocb *iocb, struct iov_iter *iter)
624
624
static int proc_sys_open (struct inode * inode , struct file * filp )
625
625
{
626
626
struct ctl_table_header * head = grab_header (inode );
627
- struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
627
+ const struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
628
628
629
629
/* sysctl was unregistered */
630
630
if (IS_ERR (head ))
@@ -642,7 +642,7 @@ static __poll_t proc_sys_poll(struct file *filp, poll_table *wait)
642
642
{
643
643
struct inode * inode = file_inode (filp );
644
644
struct ctl_table_header * head = grab_header (inode );
645
- struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
645
+ const struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
646
646
__poll_t ret = DEFAULT_POLLMASK ;
647
647
unsigned long event ;
648
648
@@ -673,7 +673,7 @@ static __poll_t proc_sys_poll(struct file *filp, poll_table *wait)
673
673
static bool proc_sys_fill_cache (struct file * file ,
674
674
struct dir_context * ctx ,
675
675
struct ctl_table_header * head ,
676
- struct ctl_table * table )
676
+ const struct ctl_table * table )
677
677
{
678
678
struct dentry * child , * dir = file -> f_path .dentry ;
679
679
struct inode * inode ;
@@ -717,7 +717,7 @@ static bool proc_sys_fill_cache(struct file *file,
717
717
static bool proc_sys_link_fill_cache (struct file * file ,
718
718
struct dir_context * ctx ,
719
719
struct ctl_table_header * head ,
720
- struct ctl_table * table )
720
+ const struct ctl_table * table )
721
721
{
722
722
bool ret = true;
723
723
@@ -735,7 +735,7 @@ static bool proc_sys_link_fill_cache(struct file *file,
735
735
return ret ;
736
736
}
737
737
738
- static int scan (struct ctl_table_header * head , struct ctl_table * table ,
738
+ static int scan (struct ctl_table_header * head , const struct ctl_table * table ,
739
739
unsigned long * pos , struct file * file ,
740
740
struct dir_context * ctx )
741
741
{
@@ -759,7 +759,7 @@ static int proc_sys_readdir(struct file *file, struct dir_context *ctx)
759
759
{
760
760
struct ctl_table_header * head = grab_header (file_inode (file ));
761
761
struct ctl_table_header * h = NULL ;
762
- struct ctl_table * entry ;
762
+ const struct ctl_table * entry ;
763
763
struct ctl_dir * ctl_dir ;
764
764
unsigned long pos ;
765
765
@@ -792,7 +792,7 @@ static int proc_sys_permission(struct mnt_idmap *idmap,
792
792
* are _NOT_ writeable, capabilities or not.
793
793
*/
794
794
struct ctl_table_header * head ;
795
- struct ctl_table * table ;
795
+ const struct ctl_table * table ;
796
796
int error ;
797
797
798
798
/* Executable files are not allowed under /proc/sys/ */
@@ -836,7 +836,7 @@ static int proc_sys_getattr(struct mnt_idmap *idmap,
836
836
{
837
837
struct inode * inode = d_inode (path -> dentry );
838
838
struct ctl_table_header * head = grab_header (inode );
839
- struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
839
+ const struct ctl_table * table = PROC_I (inode )-> sysctl_entry ;
840
840
841
841
if (IS_ERR (head ))
842
842
return PTR_ERR (head );
@@ -935,7 +935,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
935
935
const char * name , int namelen )
936
936
{
937
937
struct ctl_table_header * head ;
938
- struct ctl_table * entry ;
938
+ const struct ctl_table * entry ;
939
939
940
940
entry = find_entry (& head , dir , name , namelen );
941
941
if (!entry )
@@ -1046,12 +1046,12 @@ static struct ctl_dir *xlate_dir(struct ctl_table_set *set, struct ctl_dir *dir)
1046
1046
}
1047
1047
1048
1048
static int sysctl_follow_link (struct ctl_table_header * * phead ,
1049
- struct ctl_table * * pentry )
1049
+ const struct ctl_table * * pentry )
1050
1050
{
1051
1051
struct ctl_table_header * head ;
1052
+ const struct ctl_table * entry ;
1052
1053
struct ctl_table_root * root ;
1053
1054
struct ctl_table_set * set ;
1054
- struct ctl_table * entry ;
1055
1055
struct ctl_dir * dir ;
1056
1056
int ret ;
1057
1057
@@ -1078,7 +1078,7 @@ static int sysctl_follow_link(struct ctl_table_header **phead,
1078
1078
return ret ;
1079
1079
}
1080
1080
1081
- static int sysctl_err (const char * path , struct ctl_table * table , char * fmt , ...)
1081
+ static int sysctl_err (const char * path , const struct ctl_table * table , char * fmt , ...)
1082
1082
{
1083
1083
struct va_format vaf ;
1084
1084
va_list args ;
@@ -1094,7 +1094,7 @@ static int sysctl_err(const char *path, struct ctl_table *table, char *fmt, ...)
1094
1094
return - EINVAL ;
1095
1095
}
1096
1096
1097
- static int sysctl_check_table_array (const char * path , struct ctl_table * table )
1097
+ static int sysctl_check_table_array (const char * path , const struct ctl_table * table )
1098
1098
{
1099
1099
unsigned int extra ;
1100
1100
int err = 0 ;
@@ -1133,7 +1133,7 @@ static int sysctl_check_table_array(const char *path, struct ctl_table *table)
1133
1133
1134
1134
static int sysctl_check_table (const char * path , struct ctl_table_header * header )
1135
1135
{
1136
- struct ctl_table * entry ;
1136
+ const struct ctl_table * entry ;
1137
1137
int err = 0 ;
1138
1138
list_for_each_table_entry (entry , header ) {
1139
1139
if (!entry -> procname )
@@ -1169,8 +1169,9 @@ static int sysctl_check_table(const char *path, struct ctl_table_header *header)
1169
1169
1170
1170
static struct ctl_table_header * new_links (struct ctl_dir * dir , struct ctl_table_header * head )
1171
1171
{
1172
- struct ctl_table * link_table , * entry , * link ;
1172
+ struct ctl_table * link_table , * link ;
1173
1173
struct ctl_table_header * links ;
1174
+ const struct ctl_table * entry ;
1174
1175
struct ctl_node * node ;
1175
1176
char * link_name ;
1176
1177
int name_bytes ;
@@ -1215,7 +1216,7 @@ static bool get_links(struct ctl_dir *dir,
1215
1216
struct ctl_table_root * link_root )
1216
1217
{
1217
1218
struct ctl_table_header * tmp_head ;
1218
- struct ctl_table * entry , * link ;
1219
+ const struct ctl_table * entry , * link ;
1219
1220
1220
1221
if (header -> ctl_table_size == 0 ||
1221
1222
sysctl_is_perm_empty_ctl_header (header ))
@@ -1466,7 +1467,7 @@ static void put_links(struct ctl_table_header *header)
1466
1467
struct ctl_table_root * root = header -> root ;
1467
1468
struct ctl_dir * parent = header -> parent ;
1468
1469
struct ctl_dir * core_parent ;
1469
- struct ctl_table * entry ;
1470
+ const struct ctl_table * entry ;
1470
1471
1471
1472
if (header -> set == root_set )
1472
1473
return ;
@@ -1477,7 +1478,7 @@ static void put_links(struct ctl_table_header *header)
1477
1478
1478
1479
list_for_each_table_entry (entry , header ) {
1479
1480
struct ctl_table_header * link_head ;
1480
- struct ctl_table * link ;
1481
+ const struct ctl_table * link ;
1481
1482
const char * name = entry -> procname ;
1482
1483
1483
1484
link = find_entry (& link_head , core_parent , name , strlen (name ));
0 commit comments