Skip to content

Commit 502d2e7

Browse files
tititiou36rostedt
authored andcommitted
tracing: Constify struct event_trigger_ops
'event_trigger_ops mwifiex_if_ops' are not modified in these drivers. Constifying these structures moves some data to a read-only section, so increase overall security, especially when the structure holds some function pointers. On a x86_64, with allmodconfig, as an example: Before: ====== text data bss dec hex filename 31368 9024 6200 46592 b600 kernel/trace/trace_events_trigger.o After: ===== text data bss dec hex filename 31752 8608 6200 46560 b5e0 kernel/trace/trace_events_trigger.o Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Link: https://lore.kernel.org/66e8f990e649678e4be37d4d1a19158ca0dea2f4.1741521295.git.christophe.jaillet@wanadoo.fr Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent a926d15 commit 502d2e7

File tree

4 files changed

+34
-34
lines changed

4 files changed

+34
-34
lines changed

kernel/trace/trace.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1714,7 +1714,7 @@ struct event_trigger_data {
17141714
unsigned long count;
17151715
int ref;
17161716
int flags;
1717-
struct event_trigger_ops *ops;
1717+
const struct event_trigger_ops *ops;
17181718
struct event_command *cmd_ops;
17191719
struct event_filter __rcu *filter;
17201720
char *filter_str;
@@ -1959,7 +1959,7 @@ struct event_command {
19591959
int (*set_filter)(char *filter_str,
19601960
struct event_trigger_data *data,
19611961
struct trace_event_file *file);
1962-
struct event_trigger_ops *(*get_trigger_ops)(char *cmd, char *param);
1962+
const struct event_trigger_ops *(*get_trigger_ops)(char *cmd, char *param);
19631963
};
19641964

19651965
/**

kernel/trace/trace_eprobe.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ static void eprobe_trigger_func(struct event_trigger_data *data,
478478
__eprobe_trace_func(edata, rec);
479479
}
480480

481-
static struct event_trigger_ops eprobe_trigger_ops = {
481+
static const struct event_trigger_ops eprobe_trigger_ops = {
482482
.trigger = eprobe_trigger_func,
483483
.print = eprobe_trigger_print,
484484
.init = eprobe_trigger_init,
@@ -507,8 +507,8 @@ static void eprobe_trigger_unreg_func(char *glob,
507507

508508
}
509509

510-
static struct event_trigger_ops *eprobe_trigger_get_ops(char *cmd,
511-
char *param)
510+
static const struct event_trigger_ops *eprobe_trigger_get_ops(char *cmd,
511+
char *param)
512512
{
513513
return &eprobe_trigger_ops;
514514
}

kernel/trace/trace_events_hist.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6191,7 +6191,7 @@ static void event_hist_trigger_free(struct event_trigger_data *data)
61916191
}
61926192
}
61936193

6194-
static struct event_trigger_ops event_hist_trigger_ops = {
6194+
static const struct event_trigger_ops event_hist_trigger_ops = {
61956195
.trigger = event_hist_trigger,
61966196
.print = event_hist_trigger_print,
61976197
.init = event_hist_trigger_init,
@@ -6223,15 +6223,15 @@ static void event_hist_trigger_named_free(struct event_trigger_data *data)
62236223
}
62246224
}
62256225

6226-
static struct event_trigger_ops event_hist_trigger_named_ops = {
6226+
static const struct event_trigger_ops event_hist_trigger_named_ops = {
62276227
.trigger = event_hist_trigger,
62286228
.print = event_hist_trigger_print,
62296229
.init = event_hist_trigger_named_init,
62306230
.free = event_hist_trigger_named_free,
62316231
};
62326232

6233-
static struct event_trigger_ops *event_hist_get_trigger_ops(char *cmd,
6234-
char *param)
6233+
static const struct event_trigger_ops *event_hist_get_trigger_ops(char *cmd,
6234+
char *param)
62356235
{
62366236
return &event_hist_trigger_ops;
62376237
}
@@ -6826,38 +6826,38 @@ hist_enable_count_trigger(struct event_trigger_data *data,
68266826
hist_enable_trigger(data, buffer, rec, event);
68276827
}
68286828

6829-
static struct event_trigger_ops hist_enable_trigger_ops = {
6829+
static const struct event_trigger_ops hist_enable_trigger_ops = {
68306830
.trigger = hist_enable_trigger,
68316831
.print = event_enable_trigger_print,
68326832
.init = event_trigger_init,
68336833
.free = event_enable_trigger_free,
68346834
};
68356835

6836-
static struct event_trigger_ops hist_enable_count_trigger_ops = {
6836+
static const struct event_trigger_ops hist_enable_count_trigger_ops = {
68376837
.trigger = hist_enable_count_trigger,
68386838
.print = event_enable_trigger_print,
68396839
.init = event_trigger_init,
68406840
.free = event_enable_trigger_free,
68416841
};
68426842

6843-
static struct event_trigger_ops hist_disable_trigger_ops = {
6843+
static const struct event_trigger_ops hist_disable_trigger_ops = {
68446844
.trigger = hist_enable_trigger,
68456845
.print = event_enable_trigger_print,
68466846
.init = event_trigger_init,
68476847
.free = event_enable_trigger_free,
68486848
};
68496849

6850-
static struct event_trigger_ops hist_disable_count_trigger_ops = {
6850+
static const struct event_trigger_ops hist_disable_count_trigger_ops = {
68516851
.trigger = hist_enable_count_trigger,
68526852
.print = event_enable_trigger_print,
68536853
.init = event_trigger_init,
68546854
.free = event_enable_trigger_free,
68556855
};
68566856

6857-
static struct event_trigger_ops *
6857+
static const struct event_trigger_ops *
68586858
hist_enable_get_trigger_ops(char *cmd, char *param)
68596859
{
6860-
struct event_trigger_ops *ops;
6860+
const struct event_trigger_ops *ops;
68616861
bool enable;
68626862

68636863
enable = (strcmp(cmd, ENABLE_HIST_STR) == 0);

kernel/trace/trace_events_trigger.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,7 @@ struct event_trigger_data *event_trigger_alloc(struct event_command *cmd_ops,
825825
void *private_data)
826826
{
827827
struct event_trigger_data *trigger_data;
828-
struct event_trigger_ops *trigger_ops;
828+
const struct event_trigger_ops *trigger_ops;
829829

830830
trigger_ops = cmd_ops->get_trigger_ops(cmd, param);
831831

@@ -1367,38 +1367,38 @@ traceoff_trigger_print(struct seq_file *m, struct event_trigger_data *data)
13671367
data->filter_str);
13681368
}
13691369

1370-
static struct event_trigger_ops traceon_trigger_ops = {
1370+
static const struct event_trigger_ops traceon_trigger_ops = {
13711371
.trigger = traceon_trigger,
13721372
.print = traceon_trigger_print,
13731373
.init = event_trigger_init,
13741374
.free = event_trigger_free,
13751375
};
13761376

1377-
static struct event_trigger_ops traceon_count_trigger_ops = {
1377+
static const struct event_trigger_ops traceon_count_trigger_ops = {
13781378
.trigger = traceon_count_trigger,
13791379
.print = traceon_trigger_print,
13801380
.init = event_trigger_init,
13811381
.free = event_trigger_free,
13821382
};
13831383

1384-
static struct event_trigger_ops traceoff_trigger_ops = {
1384+
static const struct event_trigger_ops traceoff_trigger_ops = {
13851385
.trigger = traceoff_trigger,
13861386
.print = traceoff_trigger_print,
13871387
.init = event_trigger_init,
13881388
.free = event_trigger_free,
13891389
};
13901390

1391-
static struct event_trigger_ops traceoff_count_trigger_ops = {
1391+
static const struct event_trigger_ops traceoff_count_trigger_ops = {
13921392
.trigger = traceoff_count_trigger,
13931393
.print = traceoff_trigger_print,
13941394
.init = event_trigger_init,
13951395
.free = event_trigger_free,
13961396
};
13971397

1398-
static struct event_trigger_ops *
1398+
static const struct event_trigger_ops *
13991399
onoff_get_trigger_ops(char *cmd, char *param)
14001400
{
1401-
struct event_trigger_ops *ops;
1401+
const struct event_trigger_ops *ops;
14021402

14031403
/* we register both traceon and traceoff to this callback */
14041404
if (strcmp(cmd, "traceon") == 0)
@@ -1491,21 +1491,21 @@ snapshot_trigger_print(struct seq_file *m, struct event_trigger_data *data)
14911491
data->filter_str);
14921492
}
14931493

1494-
static struct event_trigger_ops snapshot_trigger_ops = {
1494+
static const struct event_trigger_ops snapshot_trigger_ops = {
14951495
.trigger = snapshot_trigger,
14961496
.print = snapshot_trigger_print,
14971497
.init = event_trigger_init,
14981498
.free = event_trigger_free,
14991499
};
15001500

1501-
static struct event_trigger_ops snapshot_count_trigger_ops = {
1501+
static const struct event_trigger_ops snapshot_count_trigger_ops = {
15021502
.trigger = snapshot_count_trigger,
15031503
.print = snapshot_trigger_print,
15041504
.init = event_trigger_init,
15051505
.free = event_trigger_free,
15061506
};
15071507

1508-
static struct event_trigger_ops *
1508+
static const struct event_trigger_ops *
15091509
snapshot_get_trigger_ops(char *cmd, char *param)
15101510
{
15111511
return param ? &snapshot_count_trigger_ops : &snapshot_trigger_ops;
@@ -1586,21 +1586,21 @@ stacktrace_trigger_print(struct seq_file *m, struct event_trigger_data *data)
15861586
data->filter_str);
15871587
}
15881588

1589-
static struct event_trigger_ops stacktrace_trigger_ops = {
1589+
static const struct event_trigger_ops stacktrace_trigger_ops = {
15901590
.trigger = stacktrace_trigger,
15911591
.print = stacktrace_trigger_print,
15921592
.init = event_trigger_init,
15931593
.free = event_trigger_free,
15941594
};
15951595

1596-
static struct event_trigger_ops stacktrace_count_trigger_ops = {
1596+
static const struct event_trigger_ops stacktrace_count_trigger_ops = {
15971597
.trigger = stacktrace_count_trigger,
15981598
.print = stacktrace_trigger_print,
15991599
.init = event_trigger_init,
16001600
.free = event_trigger_free,
16011601
};
16021602

1603-
static struct event_trigger_ops *
1603+
static const struct event_trigger_ops *
16041604
stacktrace_get_trigger_ops(char *cmd, char *param)
16051605
{
16061606
return param ? &stacktrace_count_trigger_ops : &stacktrace_trigger_ops;
@@ -1711,28 +1711,28 @@ void event_enable_trigger_free(struct event_trigger_data *data)
17111711
}
17121712
}
17131713

1714-
static struct event_trigger_ops event_enable_trigger_ops = {
1714+
static const struct event_trigger_ops event_enable_trigger_ops = {
17151715
.trigger = event_enable_trigger,
17161716
.print = event_enable_trigger_print,
17171717
.init = event_trigger_init,
17181718
.free = event_enable_trigger_free,
17191719
};
17201720

1721-
static struct event_trigger_ops event_enable_count_trigger_ops = {
1721+
static const struct event_trigger_ops event_enable_count_trigger_ops = {
17221722
.trigger = event_enable_count_trigger,
17231723
.print = event_enable_trigger_print,
17241724
.init = event_trigger_init,
17251725
.free = event_enable_trigger_free,
17261726
};
17271727

1728-
static struct event_trigger_ops event_disable_trigger_ops = {
1728+
static const struct event_trigger_ops event_disable_trigger_ops = {
17291729
.trigger = event_enable_trigger,
17301730
.print = event_enable_trigger_print,
17311731
.init = event_trigger_init,
17321732
.free = event_enable_trigger_free,
17331733
};
17341734

1735-
static struct event_trigger_ops event_disable_count_trigger_ops = {
1735+
static const struct event_trigger_ops event_disable_count_trigger_ops = {
17361736
.trigger = event_enable_count_trigger,
17371737
.print = event_enable_trigger_print,
17381738
.init = event_trigger_init,
@@ -1916,10 +1916,10 @@ void event_enable_unregister_trigger(char *glob,
19161916
data->ops->free(data);
19171917
}
19181918

1919-
static struct event_trigger_ops *
1919+
static const struct event_trigger_ops *
19201920
event_enable_get_trigger_ops(char *cmd, char *param)
19211921
{
1922-
struct event_trigger_ops *ops;
1922+
const struct event_trigger_ops *ops;
19231923
bool enable;
19241924

19251925
#ifdef CONFIG_HIST_TRIGGERS

0 commit comments

Comments
 (0)