ftrace/x86: Add a comment to why we take text_mutex in ftrace_arch_code_modify_prepare()
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 28 Jun 2019 01:18:19 +0000 (21:18 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 28 Jun 2019 18:21:25 +0000 (14:21 -0400)
Taking the text_mutex in ftrace_arch_code_modify_prepare() is to fix a
race against module loading and live kernel patching that might try to
change the text permissions while ftrace has it as read/write. This
really needs to be documented in the code. Add a comment that does such.

Link: http://lkml.kernel.org/r/20190627211819.5a591f52@gandalf.local.home
Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
arch/x86/kernel/ftrace.c

index 33786044d5acbebcafb50183bb0fde134f5f11ed..d7e93b2783fd203a9736669f8911bb21a3aa7c86 100644 (file)
 
 int ftrace_arch_code_modify_prepare(void)
 {
+       /*
+        * Need to grab text_mutex to prevent a race from module loading
+        * and live kernel patching from changing the text permissions while
+        * ftrace has it set to "read/write".
+        */
        mutex_lock(&text_mutex);
        set_kernel_text_rw();
        set_all_modules_text_rw();