hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/kernel/trace/trace_stat.c
....@@ -9,7 +9,7 @@
99 *
1010 */
1111
12
-
12
+#include <linux/security.h>
1313 #include <linux/list.h>
1414 #include <linux/slab.h>
1515 #include <linux/rbtree.h>
....@@ -72,9 +72,7 @@
7272 kfree(session);
7373 }
7474
75
-typedef int (*cmp_stat_t)(void *, void *);
76
-
77
-static int insert_stat(struct rb_root *root, void *stat, cmp_stat_t cmp)
75
+static int insert_stat(struct rb_root *root, void *stat, cmp_func_t cmp)
7876 {
7977 struct rb_node **new = &(root->rb_node), *parent = NULL;
8078 struct stat_node *data;
....@@ -112,7 +110,7 @@
112110 * This one will force an insertion as right-most node
113111 * in the rbtree.
114112 */
115
-static int dummy_cmp(void *p1, void *p2)
113
+static int dummy_cmp(const void *p1, const void *p2)
116114 {
117115 return -1;
118116 }
....@@ -238,6 +236,10 @@
238236 struct seq_file *m;
239237 struct stat_session *session = inode->i_private;
240238
239
+ ret = security_locked_down(LOCKDOWN_TRACEFS);
240
+ if (ret)
241
+ return ret;
242
+
241243 ret = stat_seq_init(session);
242244 if (ret)
243245 return ret;
....@@ -274,13 +276,13 @@
274276
275277 static int tracing_stat_init(void)
276278 {
277
- struct dentry *d_tracing;
279
+ int ret;
278280
279
- d_tracing = tracing_init_dentry();
280
- if (IS_ERR(d_tracing))
281
+ ret = tracing_init_dentry();
282
+ if (ret)
281283 return -ENODEV;
282284
283
- stat_dir = tracefs_create_dir("trace_stat", d_tracing);
285
+ stat_dir = tracefs_create_dir("trace_stat", NULL);
284286 if (!stat_dir) {
285287 pr_warn("Could not create tracefs 'trace_stat' entry\n");
286288 return -ENOMEM;