On Wed, Jul 25, 2018 at 10:19 AM, Zubin Mithra <z...@chromium.org> wrote:
> tracefs_ops is initialized inside tracefs_create_instance_dir and not
> modified after. tracefs_create_instance_dir allows for initialization
> only once, and is called from create_trace_instances(marked __init),
> which is called from tracer_init_tracefs(marked __init). Also, mark
> tracefs_create_instance_dir as __init.
>
> Signed-off-by: Zubin Mithra <z...@chromium.org>

Reviewed-by: Kees Cook <keesc...@chromium.org>

-Kees

> ---
>  fs/tracefs/inode.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
> index bea8ad876bf9..7098c49f3693 100644
> --- a/fs/tracefs/inode.c
> +++ b/fs/tracefs/inode.c
> @@ -53,7 +53,7 @@ static const struct file_operations tracefs_file_operations 
> = {
>  static struct tracefs_dir_ops {
>         int (*mkdir)(const char *name);
>         int (*rmdir)(const char *name);
> -} tracefs_ops;
> +} tracefs_ops __ro_after_init;
>
>  static char *get_dname(struct dentry *dentry)
>  {
> @@ -478,7 +478,8 @@ struct dentry *tracefs_create_dir(const char *name, 
> struct dentry *parent)
>   *
>   * Returns the dentry of the instances directory.
>   */
> -struct dentry *tracefs_create_instance_dir(const char *name, struct dentry 
> *parent,
> +__init struct dentry *tracefs_create_instance_dir(const char *name,
> +                                         struct dentry *parent,
>                                           int (*mkdir)(const char *name),
>                                           int (*rmdir)(const char *name))
>  {
> --
> 2.18.0.233.g985f88cf7e-goog
>



-- 
Kees Cook
Pixel Security

Reply via email to