Patch "ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records" has been added to the 4.8-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ftrace-ignore-ftrace_fl_disabled-while-walking-dyn_ftrace-records.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
977c1f9c8c022d0173181766b34a0db3705265a4Mon Sep 17 00:00:00 2001
From: Alexei Starovoitov <[email protected]>
Date: Mon, 7 Nov 2016 15:14:20 -0800
Subject: ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records
From: Alexei Starovoitov <[email protected]>
commit 977c1f9c8c022d0173181766b34a0db3705265a4 upstream.
ftrace_shutdown() checks for sanity of ftrace records
and if dyn_ftrace->flags is not zero, it will warn.
It can happen that 'flags' are set to FTRACE_FL_DISABLED at this point, since some module was loaded, but before ftrace_module_enable() cleared the flags for this module.
In other words the module.c is doing:ftrace_module_init(mod); // calls ftrace_update_code() that sets flags=FTRACE_FL_DISABLED ... // here ftrace_shutdown() is called that warns, since
err = prepare_coming_module(mod); // didn't have a chance to clear FTRACE_FL_DISABLED
Fix it by ignoring disabled records.
It's similar to what __ftrace_hash_rec_update() is already doing.
--- kernel/trace/ftrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/trace/ftrace.c +1 -1
@@ -2757,7 +2757,7 @@ static int ftrace_shutdown(struct ftracestruct dyn_ftrace *rec;do_for_each_ftrace_rec (pg, rec) { -if (FTRACE_WARN_ON_ONCE (rec->flags)) +if (FTRACE_WARN_ON_ONCE (rec->flags & ~FTRACE_FL_DISABLED ))pr_warn (" %pS flags:%lx\n" , (void *)rec->ip, rec->flags); }while_for_each_ftrace_rec ();
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/ftrace-ignore-ftrace_fl_disabled-while-walking-dyn_ftrace-records.patch