ftrace/x86: Use breakpoints for converting function graph caller
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 12 Feb 2014 01:19:44 +0000 (20:19 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 Feb 2014 21:32:27 +0000 (13:32 -0800)
commit9b4d54ac4276d7988e92ed7a3853ae08931f07aa
tree8ca53df8a37bdfa4a1215606ea6ceaa1103fa926
parentc9eb176b7135ee278c71e80722ffffdc261d6dfe
ftrace/x86: Use breakpoints for converting function graph caller

commit 87fbb2ac6073a7039303517546a76074feb14c84 upstream.

When the conversion was made to remove stop machine and use the breakpoint
logic instead, the modification of the function graph caller is still
done directly as though it was being done under stop machine.

As it is not converted via stop machine anymore, there is a possibility
that the code could be layed across cache lines and if another CPU is
accessing that function graph call when it is being updated, it could
cause a General Protection Fault.

Convert the update of the function graph caller to use the breakpoint
method as well.

Cc: H. Peter Anvin <hpa@zytor.com>
Fixes: 08d636b6d4fb "ftrace/x86: Have arch x86_64 use breakpoints instead of stop machine"
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/ftrace.c