'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

Signed-off-by: Christophe JAILLET <[email protected]>
---
Compile tested-only.
---
 kernel/trace/trace.h                |  4 +--
 kernel/trace/trace_eprobe.c         |  6 ++---
 kernel/trace/trace_events_hist.c    | 20 +++++++--------
 kernel/trace/trace_events_trigger.c | 38 ++++++++++++++---------------
 4 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 5307daa2dacb..abab9442ac0e 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -1718,7 +1718,7 @@ struct event_trigger_data {
        unsigned long                   count;
        int                             ref;
        int                             flags;
-       struct event_trigger_ops        *ops;
+       const struct event_trigger_ops  *ops;
        struct event_command            *cmd_ops;
        struct event_filter __rcu       *filter;
        char                            *filter_str;
@@ -1963,7 +1963,7 @@ struct event_command {
        int                     (*set_filter)(char *filter_str,
                                              struct event_trigger_data *data,
                                              struct trace_event_file *file);
-       struct event_trigger_ops *(*get_trigger_ops)(char *cmd, char *param);
+       const struct event_trigger_ops *(*get_trigger_ops)(char *cmd, char 
*param);
 };
 
 /**
diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c
index af9fa0632b57..c08355c3ef32 100644
--- a/kernel/trace/trace_eprobe.c
+++ b/kernel/trace/trace_eprobe.c
@@ -478,7 +478,7 @@ static void eprobe_trigger_func(struct event_trigger_data 
*data,
        __eprobe_trace_func(edata, rec);
 }
 
-static struct event_trigger_ops eprobe_trigger_ops = {
+static const struct event_trigger_ops eprobe_trigger_ops = {
        .trigger                = eprobe_trigger_func,
        .print                  = eprobe_trigger_print,
        .init                   = eprobe_trigger_init,
@@ -507,8 +507,8 @@ static void eprobe_trigger_unreg_func(char *glob,
 
 }
 
-static struct event_trigger_ops *eprobe_trigger_get_ops(char *cmd,
-                                                       char *param)
+static const struct event_trigger_ops *eprobe_trigger_get_ops(char *cmd,
+                                                             char *param)
 {
        return &eprobe_trigger_ops;
 }
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index ad7419e24055..0a962e929243 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -6191,7 +6191,7 @@ static void event_hist_trigger_free(struct 
event_trigger_data *data)
        }
 }
 
-static struct event_trigger_ops event_hist_trigger_ops = {
+static const struct event_trigger_ops event_hist_trigger_ops = {
        .trigger                = event_hist_trigger,
        .print                  = event_hist_trigger_print,
        .init                   = event_hist_trigger_init,
@@ -6223,15 +6223,15 @@ static void event_hist_trigger_named_free(struct 
event_trigger_data *data)
        }
 }
 
-static struct event_trigger_ops event_hist_trigger_named_ops = {
+static const struct event_trigger_ops event_hist_trigger_named_ops = {
        .trigger                = event_hist_trigger,
        .print                  = event_hist_trigger_print,
        .init                   = event_hist_trigger_named_init,
        .free                   = event_hist_trigger_named_free,
 };
 
-static struct event_trigger_ops *event_hist_get_trigger_ops(char *cmd,
-                                                           char *param)
+static const struct event_trigger_ops *event_hist_get_trigger_ops(char *cmd,
+                                                                 char *param)
 {
        return &event_hist_trigger_ops;
 }
@@ -6826,38 +6826,38 @@ hist_enable_count_trigger(struct event_trigger_data 
*data,
        hist_enable_trigger(data, buffer, rec, event);
 }
 
-static struct event_trigger_ops hist_enable_trigger_ops = {
+static const struct event_trigger_ops hist_enable_trigger_ops = {
        .trigger                = hist_enable_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_enable_trigger_free,
 };
 
-static struct event_trigger_ops hist_enable_count_trigger_ops = {
+static const struct event_trigger_ops hist_enable_count_trigger_ops = {
        .trigger                = hist_enable_count_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_enable_trigger_free,
 };
 
-static struct event_trigger_ops hist_disable_trigger_ops = {
+static const struct event_trigger_ops hist_disable_trigger_ops = {
        .trigger                = hist_enable_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_enable_trigger_free,
 };
 
-static struct event_trigger_ops hist_disable_count_trigger_ops = {
+static const struct event_trigger_ops hist_disable_count_trigger_ops = {
        .trigger                = hist_enable_count_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_enable_trigger_free,
 };
 
-static struct event_trigger_ops *
+static const struct event_trigger_ops *
 hist_enable_get_trigger_ops(char *cmd, char *param)
 {
-       struct event_trigger_ops *ops;
+       const struct event_trigger_ops *ops;
        bool enable;
 
        enable = (strcmp(cmd, ENABLE_HIST_STR) == 0);
diff --git a/kernel/trace/trace_events_trigger.c 
b/kernel/trace/trace_events_trigger.c
index d45448947094..b66b6d235d91 100644
--- a/kernel/trace/trace_events_trigger.c
+++ b/kernel/trace/trace_events_trigger.c
@@ -825,7 +825,7 @@ struct event_trigger_data *event_trigger_alloc(struct 
event_command *cmd_ops,
                                               void *private_data)
 {
        struct event_trigger_data *trigger_data;
-       struct event_trigger_ops *trigger_ops;
+       const struct event_trigger_ops *trigger_ops;
 
        trigger_ops = cmd_ops->get_trigger_ops(cmd, param);
 
@@ -1367,38 +1367,38 @@ traceoff_trigger_print(struct seq_file *m, struct 
event_trigger_data *data)
                                   data->filter_str);
 }
 
-static struct event_trigger_ops traceon_trigger_ops = {
+static const struct event_trigger_ops traceon_trigger_ops = {
        .trigger                = traceon_trigger,
        .print                  = traceon_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops traceon_count_trigger_ops = {
+static const struct event_trigger_ops traceon_count_trigger_ops = {
        .trigger                = traceon_count_trigger,
        .print                  = traceon_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops traceoff_trigger_ops = {
+static const struct event_trigger_ops traceoff_trigger_ops = {
        .trigger                = traceoff_trigger,
        .print                  = traceoff_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops traceoff_count_trigger_ops = {
+static const struct event_trigger_ops traceoff_count_trigger_ops = {
        .trigger                = traceoff_count_trigger,
        .print                  = traceoff_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops *
+static const struct event_trigger_ops *
 onoff_get_trigger_ops(char *cmd, char *param)
 {
-       struct event_trigger_ops *ops;
+       const struct event_trigger_ops *ops;
 
        /* we register both traceon and traceoff to this callback */
        if (strcmp(cmd, "traceon") == 0)
@@ -1491,21 +1491,21 @@ snapshot_trigger_print(struct seq_file *m, struct 
event_trigger_data *data)
                                   data->filter_str);
 }
 
-static struct event_trigger_ops snapshot_trigger_ops = {
+static const struct event_trigger_ops snapshot_trigger_ops = {
        .trigger                = snapshot_trigger,
        .print                  = snapshot_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops snapshot_count_trigger_ops = {
+static const struct event_trigger_ops snapshot_count_trigger_ops = {
        .trigger                = snapshot_count_trigger,
        .print                  = snapshot_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops *
+static const struct event_trigger_ops *
 snapshot_get_trigger_ops(char *cmd, char *param)
 {
        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)
                                   data->filter_str);
 }
 
-static struct event_trigger_ops stacktrace_trigger_ops = {
+static const struct event_trigger_ops stacktrace_trigger_ops = {
        .trigger                = stacktrace_trigger,
        .print                  = stacktrace_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops stacktrace_count_trigger_ops = {
+static const struct event_trigger_ops stacktrace_count_trigger_ops = {
        .trigger                = stacktrace_count_trigger,
        .print                  = stacktrace_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_trigger_free,
 };
 
-static struct event_trigger_ops *
+static const struct event_trigger_ops *
 stacktrace_get_trigger_ops(char *cmd, char *param)
 {
        return param ? &stacktrace_count_trigger_ops : &stacktrace_trigger_ops;
@@ -1711,28 +1711,28 @@ void event_enable_trigger_free(struct 
event_trigger_data *data)
        }
 }
 
-static struct event_trigger_ops event_enable_trigger_ops = {
+static const struct event_trigger_ops event_enable_trigger_ops = {
        .trigger                = event_enable_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_enable_trigger_free,
 };
 
-static struct event_trigger_ops event_enable_count_trigger_ops = {
+static const struct event_trigger_ops event_enable_count_trigger_ops = {
        .trigger                = event_enable_count_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_enable_trigger_free,
 };
 
-static struct event_trigger_ops event_disable_trigger_ops = {
+static const struct event_trigger_ops event_disable_trigger_ops = {
        .trigger                = event_enable_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
        .free                   = event_enable_trigger_free,
 };
 
-static struct event_trigger_ops event_disable_count_trigger_ops = {
+static const struct event_trigger_ops event_disable_count_trigger_ops = {
        .trigger                = event_enable_count_trigger,
        .print                  = event_enable_trigger_print,
        .init                   = event_trigger_init,
@@ -1916,10 +1916,10 @@ void event_enable_unregister_trigger(char *glob,
                data->ops->free(data);
 }
 
-static struct event_trigger_ops *
+static const struct event_trigger_ops *
 event_enable_get_trigger_ops(char *cmd, char *param)
 {
-       struct event_trigger_ops *ops;
+       const struct event_trigger_ops *ops;
        bool enable;
 
 #ifdef CONFIG_HIST_TRIGGERS
-- 
2.48.1


Reply via email to