[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171009110942.731832f4@gandalf.local.home>
Date: Mon, 9 Oct 2017 11:09:42 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Joel Fernandes <joelaf@...gle.com>
Cc: linux-kernel@...r.kernel.org, Jessica Yu <jeyu@...nel.org>
Subject: Re: [PATCH RFC] ftrace: Clear hashes of saved init functions
On Sun, 8 Oct 2017 14:33:04 -0700
Joel Fernandes <joelaf@...gle.com> wrote:
>
> static void
> clear_mod_from_hash(struct ftrace_page *pg, struct ftrace_hash *hash)
> {
> @@ -5771,12 +5807,24 @@ void ftrace_release_mod(struct module *mod)
This is too late. This should be done by ftrace_free_mem().
-- Steve
> {
> struct ftrace_mod_map *mod_map;
> struct ftrace_mod_map *n;
> + struct ftrace_mod_func *mod_func;
> struct dyn_ftrace *rec;
> struct ftrace_page **last_pg;
> struct ftrace_page *tmp_page = NULL;
> struct ftrace_page *pg;
> int order;
>
> + /* mod_map is freed via call_rcu_sched() */
> + preempt_disable();
> + list_for_each_entry_rcu(mod_map, &ftrace_mod_maps, list) {
> + if (mod_map->mod != mod)
> + continue;
> + list_for_each_entry_rcu(mod_func, &mod_map->funcs, list) {
> + clear_mod_func_from_hashes(mod_func);
> + }
> + }
> + preempt_enable();
> +
> mutex_lock(&ftrace_lock);
>
> if (ftrace_disabled)
Powered by blists - more mailing lists