Skip to content

Commit 0db160f

Browse files
tracing: Constify struct event_trigger_ops
JIRA: https://issues.redhat.com/browse/RHEL-115358 commit 502d2e7 Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Date: Sun Mar 9 12:56:06 2025 +0100 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> Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
1 parent b545030 commit 0db160f

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
@@ -1691,7 +1691,7 @@ struct event_trigger_data {
16911691
unsigned long count;
16921692
int ref;
16931693
int flags;
1694-
struct event_trigger_ops *ops;
1694+
const struct event_trigger_ops *ops;
16951695
struct event_command *cmd_ops;
16961696
struct event_filter __rcu *filter;
16971697
char *filter_str;
@@ -1936,7 +1936,7 @@ struct event_command {
19361936
int (*set_filter)(char *filter_str,
19371937
struct event_trigger_data *data,
19381938
struct trace_event_file *file);
1939-
struct event_trigger_ops *(*get_trigger_ops)(char *cmd, char *param);
1939+
const struct event_trigger_ops *(*get_trigger_ops)(char *cmd, char *param);
19401940
};
19411941

19421942
/**

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
@@ -6206,7 +6206,7 @@ static void event_hist_trigger_free(struct event_trigger_data *data)
62066206
}
62076207
}
62086208

6209-
static struct event_trigger_ops event_hist_trigger_ops = {
6209+
static const struct event_trigger_ops event_hist_trigger_ops = {
62106210
.trigger = event_hist_trigger,
62116211
.print = event_hist_trigger_print,
62126212
.init = event_hist_trigger_init,
@@ -6238,15 +6238,15 @@ static void event_hist_trigger_named_free(struct event_trigger_data *data)
62386238
}
62396239
}
62406240

6241-
static struct event_trigger_ops event_hist_trigger_named_ops = {
6241+
static const struct event_trigger_ops event_hist_trigger_named_ops = {
62426242
.trigger = event_hist_trigger,
62436243
.print = event_hist_trigger_print,
62446244
.init = event_hist_trigger_named_init,
62456245
.free = event_hist_trigger_named_free,
62466246
};
62476247

6248-
static struct event_trigger_ops *event_hist_get_trigger_ops(char *cmd,
6249-
char *param)
6248+
static const struct event_trigger_ops *event_hist_get_trigger_ops(char *cmd,
6249+
char *param)
62506250
{
62516251
return &event_hist_trigger_ops;
62526252
}
@@ -6841,38 +6841,38 @@ hist_enable_count_trigger(struct event_trigger_data *data,
68416841
hist_enable_trigger(data, buffer, rec, event);
68426842
}
68436843

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

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

6858-
static struct event_trigger_ops hist_disable_trigger_ops = {
6858+
static const struct event_trigger_ops hist_disable_trigger_ops = {
68596859
.trigger = hist_enable_trigger,
68606860
.print = event_enable_trigger_print,
68616861
.init = event_trigger_init,
68626862
.free = event_enable_trigger_free,
68636863
};
68646864

6865-
static struct event_trigger_ops hist_disable_count_trigger_ops = {
6865+
static const struct event_trigger_ops hist_disable_count_trigger_ops = {
68666866
.trigger = hist_enable_count_trigger,
68676867
.print = event_enable_trigger_print,
68686868
.init = event_trigger_init,
68696869
.free = event_enable_trigger_free,
68706870
};
68716871

6872-
static struct event_trigger_ops *
6872+
static const struct event_trigger_ops *
68736873
hist_enable_get_trigger_ops(char *cmd, char *param)
68746874
{
6875-
struct event_trigger_ops *ops;
6875+
const struct event_trigger_ops *ops;
68766876
bool enable;
68776877

68786878
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
@@ -846,7 +846,7 @@ struct event_trigger_data *event_trigger_alloc(struct event_command *cmd_ops,
846846
void *private_data)
847847
{
848848
struct event_trigger_data *trigger_data;
849-
struct event_trigger_ops *trigger_ops;
849+
const struct event_trigger_ops *trigger_ops;
850850

851851
trigger_ops = cmd_ops->get_trigger_ops(cmd, param);
852852

@@ -1388,38 +1388,38 @@ traceoff_trigger_print(struct seq_file *m, struct event_trigger_data *data)
13881388
data->filter_str);
13891389
}
13901390

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

1398-
static struct event_trigger_ops traceon_count_trigger_ops = {
1398+
static const struct event_trigger_ops traceon_count_trigger_ops = {
13991399
.trigger = traceon_count_trigger,
14001400
.print = traceon_trigger_print,
14011401
.init = event_trigger_init,
14021402
.free = event_trigger_free,
14031403
};
14041404

1405-
static struct event_trigger_ops traceoff_trigger_ops = {
1405+
static const struct event_trigger_ops traceoff_trigger_ops = {
14061406
.trigger = traceoff_trigger,
14071407
.print = traceoff_trigger_print,
14081408
.init = event_trigger_init,
14091409
.free = event_trigger_free,
14101410
};
14111411

1412-
static struct event_trigger_ops traceoff_count_trigger_ops = {
1412+
static const struct event_trigger_ops traceoff_count_trigger_ops = {
14131413
.trigger = traceoff_count_trigger,
14141414
.print = traceoff_trigger_print,
14151415
.init = event_trigger_init,
14161416
.free = event_trigger_free,
14171417
};
14181418

1419-
static struct event_trigger_ops *
1419+
static const struct event_trigger_ops *
14201420
onoff_get_trigger_ops(char *cmd, char *param)
14211421
{
1422-
struct event_trigger_ops *ops;
1422+
const struct event_trigger_ops *ops;
14231423

14241424
/* we register both traceon and traceoff to this callback */
14251425
if (strcmp(cmd, "traceon") == 0)
@@ -1512,21 +1512,21 @@ snapshot_trigger_print(struct seq_file *m, struct event_trigger_data *data)
15121512
data->filter_str);
15131513
}
15141514

1515-
static struct event_trigger_ops snapshot_trigger_ops = {
1515+
static const struct event_trigger_ops snapshot_trigger_ops = {
15161516
.trigger = snapshot_trigger,
15171517
.print = snapshot_trigger_print,
15181518
.init = event_trigger_init,
15191519
.free = event_trigger_free,
15201520
};
15211521

1522-
static struct event_trigger_ops snapshot_count_trigger_ops = {
1522+
static const struct event_trigger_ops snapshot_count_trigger_ops = {
15231523
.trigger = snapshot_count_trigger,
15241524
.print = snapshot_trigger_print,
15251525
.init = event_trigger_init,
15261526
.free = event_trigger_free,
15271527
};
15281528

1529-
static struct event_trigger_ops *
1529+
static const struct event_trigger_ops *
15301530
snapshot_get_trigger_ops(char *cmd, char *param)
15311531
{
15321532
return param ? &snapshot_count_trigger_ops : &snapshot_trigger_ops;
@@ -1607,21 +1607,21 @@ stacktrace_trigger_print(struct seq_file *m, struct event_trigger_data *data)
16071607
data->filter_str);
16081608
}
16091609

1610-
static struct event_trigger_ops stacktrace_trigger_ops = {
1610+
static const struct event_trigger_ops stacktrace_trigger_ops = {
16111611
.trigger = stacktrace_trigger,
16121612
.print = stacktrace_trigger_print,
16131613
.init = event_trigger_init,
16141614
.free = event_trigger_free,
16151615
};
16161616

1617-
static struct event_trigger_ops stacktrace_count_trigger_ops = {
1617+
static const struct event_trigger_ops stacktrace_count_trigger_ops = {
16181618
.trigger = stacktrace_count_trigger,
16191619
.print = stacktrace_trigger_print,
16201620
.init = event_trigger_init,
16211621
.free = event_trigger_free,
16221622
};
16231623

1624-
static struct event_trigger_ops *
1624+
static const struct event_trigger_ops *
16251625
stacktrace_get_trigger_ops(char *cmd, char *param)
16261626
{
16271627
return param ? &stacktrace_count_trigger_ops : &stacktrace_trigger_ops;
@@ -1732,28 +1732,28 @@ void event_enable_trigger_free(struct event_trigger_data *data)
17321732
}
17331733
}
17341734

1735-
static struct event_trigger_ops event_enable_trigger_ops = {
1735+
static const struct event_trigger_ops event_enable_trigger_ops = {
17361736
.trigger = event_enable_trigger,
17371737
.print = event_enable_trigger_print,
17381738
.init = event_trigger_init,
17391739
.free = event_enable_trigger_free,
17401740
};
17411741

1742-
static struct event_trigger_ops event_enable_count_trigger_ops = {
1742+
static const struct event_trigger_ops event_enable_count_trigger_ops = {
17431743
.trigger = event_enable_count_trigger,
17441744
.print = event_enable_trigger_print,
17451745
.init = event_trigger_init,
17461746
.free = event_enable_trigger_free,
17471747
};
17481748

1749-
static struct event_trigger_ops event_disable_trigger_ops = {
1749+
static const struct event_trigger_ops event_disable_trigger_ops = {
17501750
.trigger = event_enable_trigger,
17511751
.print = event_enable_trigger_print,
17521752
.init = event_trigger_init,
17531753
.free = event_enable_trigger_free,
17541754
};
17551755

1756-
static struct event_trigger_ops event_disable_count_trigger_ops = {
1756+
static const struct event_trigger_ops event_disable_count_trigger_ops = {
17571757
.trigger = event_enable_count_trigger,
17581758
.print = event_enable_trigger_print,
17591759
.init = event_trigger_init,
@@ -1937,10 +1937,10 @@ void event_enable_unregister_trigger(char *glob,
19371937
data->ops->free(data);
19381938
}
19391939

1940-
static struct event_trigger_ops *
1940+
static const struct event_trigger_ops *
19411941
event_enable_get_trigger_ops(char *cmd, char *param)
19421942
{
1943-
struct event_trigger_ops *ops;
1943+
const struct event_trigger_ops *ops;
19441944
bool enable;
19451945

19461946
#ifdef CONFIG_HIST_TRIGGERS

0 commit comments

Comments
 (0)