----- Original Message -----
> From: "Steven Rostedt" <rost...@goodmis.org>
> To: "Mathieu Desnoyers" <mathieu.desnoy...@efficios.com>
> Cc: linux-kernel@vger.kernel.org, "Ingo Molnar" <mi...@kernel.org>, "Frederic 
> Weisbecker" <fweis...@gmail.com>,
> "Andrew Morton" <a...@linux-foundation.org>, "Frank Ch. Eigler" 
> <f...@redhat.com>, "Johannes Berg"
> <johannes.b...@intel.com>
> Sent: Tuesday, April 8, 2014 8:17:05 PM
> Subject: Re: [PATCH 1/1 v11] Tracepoint: register/unregister struct tracepoint
> 
> OK, I kicked off my tests to test this patch. If all goes well, I'll
> push it to linux-next and then off to Linus.
> 
> But I also added a patch on top. This shouldn't cause any issues for
> you, does it?

It allright by me. You can add my

Acked-by: Mathieu Desnoyers <mathieu.desnoy...@efficios.com>

Thanks!

Mathieu

> 
> -- Steve
> 
> From a22720af7d7d2e06284fbed68bd93827f75381b1 Mon Sep 17 00:00:00 2001
> From: "Steven Rostedt (Red Hat)" <rost...@goodmis.org>
> Date: Tue, 8 Apr 2014 20:09:40 -0400
> Subject: [PATCH] tracepoint: Simplify tracepoint module search
> 
> Instead of copying the num_tracepoints and tracepoints_ptrs from
> the module structure to the tp_mod structure, which only uses it to
> find the module associated to tracepoints of modules that are coming
> and going, simply copy the pointer to the module struct to the tracepoint
> tp_module structure.
> 
> Also removed un-needed brackets around an if statement.
> 
> Cc: Mathieu Desnoyers <mathieu.desnoy...@efficios.com>
> Signed-off-by: Steven Rostedt <rost...@goodmis.org>
> ---
>  include/linux/tracepoint.h | 3 +--
>  kernel/tracepoint.c        | 9 ++++-----
>  2 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
> index 08150e2..69a298b 100644
> --- a/include/linux/tracepoint.h
> +++ b/include/linux/tracepoint.h
> @@ -47,8 +47,7 @@ for_each_kernel_tracepoint(void (*fct)(struct tracepoint
> *tp, void *priv),
>  #ifdef CONFIG_MODULES
>  struct tp_module {
>       struct list_head list;
> -     unsigned int num_tracepoints;
> -     struct tracepoint * const *tracepoints_ptrs;
> +     struct module *mod;
>  };
>  
>  bool trace_module_has_bad_taint(struct module *mod);
> diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
> index 8c4f2f4..c115ec4 100644
> --- a/kernel/tracepoint.c
> +++ b/kernel/tracepoint.c
> @@ -374,8 +374,7 @@ static int tracepoint_module_coming(struct module *mod)
>               ret = -ENOMEM;
>               goto end;
>       }
> -     tp_mod->num_tracepoints = mod->num_tracepoints;
> -     tp_mod->tracepoints_ptrs = mod->tracepoints_ptrs;
> +     tp_mod->mod = mod;
>       list_add_tail(&tp_mod->list, &tracepoint_module_list);
>       blocking_notifier_call_chain(&tracepoint_notify_list,
>                       MODULE_STATE_COMING, tp_mod);
> @@ -393,7 +392,7 @@ static void tracepoint_module_going(struct module *mod)
>  
>       mutex_lock(&tracepoint_module_list_mutex);
>       list_for_each_entry(tp_mod, &tracepoint_module_list, list) {
> -             if (tp_mod->tracepoints_ptrs == mod->tracepoints_ptrs) {
> +             if (tp_mod->mod == mod) {
>                       blocking_notifier_call_chain(&tracepoint_notify_list,
>                                       MODULE_STATE_GOING, tp_mod);
>                       list_del(&tp_mod->list);
> @@ -447,9 +446,9 @@ static __init int init_tracepoints(void)
>       int ret;
>  
>       ret = register_module_notifier(&tracepoint_module_nb);
> -     if (ret) {
> +     if (ret)
>               pr_warning("Failed to register tracepoint module enter 
> notifier\n");
> -     }
> +
>       return ret;
>  }
>  __initcall(init_tracepoints);
> --
> 1.8.5.3
> 
> 
> 

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to